題 在oh-my-zsh中出現Ctrl-Left / Right綁定問題


出於某種原因,在我的MacBook Pro上安裝oh-my-zsh之後,我無法綁定Ctrl-Left Arrow和Ctrl-Right Arrow在ZSH中的單詞之間移動。

在iTerm2中,我將我的鍵綁定配置為“發送轉義序列”[1; 5D和[1; 5C,在安裝oh-my-zsh之前有效。

我也嘗試取消註釋

bindkey '^[^[[C' emacs-forward-word
bindkey '^[^[[D' emacs-backward-word

在〜/ .oh-my-zsh / lib / key-bindings.zsh中,也無濟於事。在這兩種情況下,按Ctrl-Left / Right只會將“5D”和“5C”發送到屏幕。

TLDR:有沒有人在使用oh-my-zsh時讓Ctrl-Left和Ctrl-Right在單詞之間移動?


6
2018-06-22 17:32


起源




答案:


將bindkey行更改為:

bindkey '^[[1;5C' emacs-forward-word
bindkey '^[[1;5D' emacs-backward-word

6
2017-07-18 02:02





這個對我有用:

bindkey "[C" emacs-forward-word   #control left
bindkey "[D" backward-word        #control right

事實上,我按下了 控制+剩下 和 控制+ 之間的“魔法”。


4
2018-02-01 11:39





^v(Ctrl-v) 要么 cat 在裡面 zsh shell,接著是 key-combinations(Ctrl+left) 無論你想使用什麼,獲取相應的bindkey值。在命令中使用此輸出。它因係統而異,具體取決於終端驅動程序等。

在我的情況下 Ctrl-left 是 ^[O5D。因此, bindkey '^[O5D' backward-word

如果你想先走一步, https://stackoverflow.com/a/8645267/2538943 提供了在cmd的幫助下概括zsh鍵綁定的想法 autoload zkbd ; zkbd。完成後,添加以下行, source ~/.zkbd/$TERM-${${DISPLAY:t}:-$VENDOR-$OSTYPE} 到你的.zshrc。從現在開始,你可以寫它 [[ -n ${key[Left]} ]] && bindkey "${key[Left]}" backward-char。這樣,您也可以將相同的.zshrc複製到不同的計算機上。

附加信息: 彼得斯蒂芬森說 ...the function keys on your keyboard... It depends a good deal on how your windowing system or terminal driver handles them... 因此,最好在運行任何此類腳本之前驗證所有這些關鍵綁定,儘管在大多數情況下它可能不會發生變化。

有關zsh的鍵綁定的詳細信息,請查看本指南。 http://zsh.sourceforge.net/Guide/zshguide04.html

如果你想知道如何按下按鍵, https://unix.stackexchange.com/questions/116629/how-do-keyboard-input-and-text-output-work/116630#116630


3
2017-09-04 12:59





所以你讓你的終端模擬器發送一個CSI序列(ESC +[+1;5C)對於密鑰,但你告訴你的shell bindkey 命令觀看終端輸入 不同 CSI序列(ESC + ESC +[+C),你想知道為什麼這不起作用?

它不是很明顯的原因。


0
2018-06-23 10:24