ohmyzsh: update brings lots of "undefined-key" and binding problems

For your information, I work under cygwin (I would rather not to). I guess, it’s easy to fix but I don’t have the time to mess with it.

Since a recent auto update, every time i start my zsh, I get:

"^@\" set-mark-comman" undefined-key
"^A\" beginning-of-lin" undefined-key
"^B\" backward-cha" undefined-key
"^D\" delete-char-or-lis" undefined-key
"^E\" end-of-lin" undefined-key
"^F\" forward-cha" undefined-key
"^G\" send-brea" undefined-key
"^H\" backward-delete-cha" undefined-key
"^I\" expand-or-complet" undefined-key
"^J\" accept-lin" undefined-key
"^K\" kill-lin" undefined-key
"^L\" clear-scree" undefined-key
"^M\" accept-lin" undefined-key
"^N\" down-line-or-histor" undefined-key
"^O\" accept-line-and-down-histor" undefined-key
"^P\" up-line-or-histor" undefined-key
"^Q\" push-lin" undefined-key
"^R\" history-incremental-search-backwar" undefined-key
"^S\" history-incremental-search-forwar" undefined-key
"^T\" transpose-char" undefined-key
"^U\" kill-whole-lin" undefined-key
"^V\" quoted-inser" undefined-key
"^W\" backward-kill-wor" undefined-key
"^X^B\" vi-match-bracke" undefined-key
"^X^E\" edit-command-lin" undefined-key
"^X^F\" vi-find-next-cha" undefined-key
"^X^J\" vi-joi" undefined-key
"^X^K\" kill-buffe" undefined-key
"^X^N\" infer-next-histor" undefined-key
"^X^O\" overwrite-mod" undefined-key
"^X^R\" _read_com" undefined-key
"^X^U\" und" undefined-key
"^X^V\" vi-cmd-mod" undefined-key
"^X^X\" exchange-point-and-mar" undefined-key
"^X*\" expand-wor" undefined-key
"^X=\" what-cursor-positio" undefined-key
"^X?\" _complete_debu" undefined-key
"^XC\" _correct_filenam" undefined-key
"^XG\" list-expan" undefined-key
"^Xa\" _expand_alia" undefined-key
"^Xc\" _correct_wor" undefined-key
"^Xd\" _list_expansion" undefined-key
"^Xe\" _expand_wor" undefined-key
"^Xg\" list-expan" undefined-key
"^Xh\" _complete_hel" undefined-key
"^Xm\" _most_recent_fil" undefined-key
"^Xn\" _next_tag" undefined-key
"^Xr\" history-incremental-search-backwar" undefined-key
"^Xs\" history-incremental-search-forwar" undefined-key
"^Xt\" _complete_ta" undefined-key
"^Xu\" und" undefined-key
"^X~\" _bash_list-choice" undefined-key
"^Y\" yan" undefined-key
"^[^D\" list-choice" undefined-key
"^[^G\" send-brea" undefined-key
"^[^H\" backward-kill-wor" undefined-key
"^[^I\" self-insert-unmet" undefined-key
"^[^J\" self-insert-unmet" undefined-key
"^[^L\" clear-scree" undefined-key
"^[^M\" self-insert-unmet" undefined-key
"^[^_\" copy-prev-wor" undefined-key
"^[ \" expand-histor" undefined-key
"^[!\" expand-histor" undefined-key
"^[\"\" quote-regio" undefined-key
"^[\$\" spell-wor" undefined-key
/home/maxime.beucher/.zcompdump:2043: unmatched '

Please help me :p

And btw, thank you very much !! All of you !

About this issue

  • Original URL
  • State: closed
  • Created 13 years ago
  • Comments: 28 (14 by maintainers)

Commits related to this issue

Most upvoted comments

Done, I think that’s all? Cheers

Don’t bother, I think I have the culprit: /etc/profile.d/███████████.sh resets the IFS variable which is used by read to know which characters separate words. Snippet of the trace:

case "$TERM" in
    xterm) color_prompt=yes;;
    xterm-color) color_prompt=yes;;
    xterm-256color) color_prompt=yes;;
    screen) color_prompt=yes;;
esac
+/etc/profile.d/███████████.sh:15> case xterm-256color (xterm)
+/etc/profile.d/███████████.sh:15> case xterm-256color (xterm-color)
+/etc/profile.d/███████████.sh:15> case xterm-256color (xterm-256color)
+/etc/profile.d/███████████.sh:18> color_prompt=yes 

IFS="
"
+/etc/profile.d/███████████.sh:22> IFS='
' 

# Set the default PS1 and bash options
. ${profile_path}/bashrc_default

If you go to that file and comment out the line that changes IFS maybe it’ll work again. Run this afterwards on a new shell to confirm:

echo '"^@" set-mark-command' | read -rA _d_line
print -l $_d_line

I don’t know where does that file come from or why it changes the IFS variable, but the normal thing to do is to reset it back to its original value after it’s done using it.

For anyone else researching this problem, I experienced a similar issue after I installed Node Version Manager (https://github.com/nvm-sh/nvm).

The workaround I used was to remove the ~/.nvm/nvm.sh loading script that was added to .zshrc.