Answers:
FWIW,这是使用zsh的默认设置在我的环境(rhel5.x)上起作用的内容。
bindkey "^[[1;5C" forward-word
bindkey "^[[1;5D" backward-word
^[^[[D
和^[^[[C
分别用于OSX
.zshrc
默认情况下未内置此代码。
$terminfo
,而不是转义序列:按键$terminfo[kLFT5]
和$terminfo[kRIT5]
工作对我来说
Ctrl + U很可能是因为光标位于行尾。其次,您将哪个版本的Gentoo称为“最新系统更新”?
您想按ctrl +向左/向右做什么?
bindkey '^[[1;5C' emacs-forward-word
bindkey '^[^[[D' emacs-backward-word
bindkey ";5C" forward-word
bindkey ";5D" backward-word
注意:如果配置有效,但假定的按键无法实现您想要的功能,则可能是因为按键定义与您和我的按键定义不同,请执行:
cat > /dev/null
并按您想要输出的按键并进行相应调整。
有效的方法并不直接取决于发行版(Gentoo,Debian,RHEL等)或外壳(ZSH,KSH,BASH)-它取决于使用哪个版本terminal emulator
及其设置:konsole,terminator,urxvt,lx-terminal发行版可能会有所不同,如果它使用了不同的标准外壳程序配置(fx.zshrc),并且使用的外壳程序对该发行版上的外壳程序进行了配置可能已经解决了。
以下是一些特定于终端仿真器的解决方案:
urxvt / rxvt-unicode(甚至其他):
bindkey "^[Od" backward-word
bindkey "^[Oc" forward-word
终结者,konsole和xterm(可能还有其他):
bindkey "^[[1;5D" backward-word
bindkey "^[[1;5C" forward-word
对于更一般的方法,请启动终端,按CTRL-V,然后按要使用转义码(名称)的组合键-在这种情况下,请使用CTRL-leftarrow和CTRL-rightarrow组合键-然后将每个组合的输出两个引号之间的组合键。
terminal emulator
使用的解决方案。发行版或外壳无关紧要。这也可能就是为什么它不在.zshrc中的原因,因为适用于一个终端仿真器的不适用于另一终端仿真器。但是,如果zshrc fx可以解决。读取$ TERM环境变量,并根据结果应用不同的bindkey设置。