出于某种原因,在我的 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
Run Code Online (Sandbox Code Playgroud)
在 ~/.oh-my-zsh/lib/key-bindings.zsh 中,也无济于事。在这两种情况下,按 Ctrl-Left/Right 只会向屏幕发送“5D”和“5C”。
TLDR:有没有人在使用 oh-my-zsh 时使用 Ctrl-Left 和 Ctrl-Right 在单词之间移动?
小智 7
将您的绑定键行更改为:
bindkey '^[[1;5C' emacs-forward-word
bindkey '^[[1;5D' emacs-backward-word
Run Code Online (Sandbox Code Playgroud)
小智 6
按^v(Ctrl-v)
或cat
在zsh shell
,其次是key-combinations(Ctrl+left)
无论你想使用,以获得相应的bindkey值。在命令中使用此输出。它因系统而异,具体取决于终端驱动程序等。
在我的情况下Ctrl-left
是^[O5D
. 因此,bindkey '^[O5D' backward-word
如果您想先行一步,/sf/answers/605168721/提供了在 cmd 的帮助下概括 zsh 键绑定的想法autoload zkbd ; zkbd
。完成后,source ~/.zkbd/$TERM-${${DISPLAY:t}:-$VENDOR-$OSTYPE}
将以下行添加到您的 .zshrc。从现在开始,你可以像[[ -n ${key[Left]} ]] && bindkey "${key[Left]}" backward-char
. 这样,您也可以将相同的 .zshrc 复制到不同的机器上。
附加信息:Peter Stephenson 说...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
因此,您让终端仿真器为密钥发送一个 CSI 序列 (ESC+ [
+ ),但您已使用命令告诉 shell 来监视终端输入以获取不同的CSI 序列 (ESC+ESC+ + ),您想知道为什么这行不通?1;5C
bindkey
[
C
由于非常明显的原因,它不起作用。
归档时间: |
|
查看次数: |
7674 次 |
最近记录: |