如何将 Ctrl-Left 和 Ctrl-Right 配置为 bash 的上一个/下一个单词快捷方式(当前为 alt-b 和 alt-f)?
答案1
正确答案取决于您使用的终端。
对于 Gnome Terminal 或最新版本的 xterm,请将其放入 ~/.inputrc 中:
"\e[1;5C": forward-word
"\e[1;5D": backward-word
对于 PuTTY,请将其放入 ~/.inputrc 中:
"\eOC": forward-word
"\eOD": backward-word
对于 rxvt,请将其放入 ~/.inputrc 中:
"\eOc": forward-word
"\eOd": backward-word
您可能可以将所有这些放在 ~/.inputrc 中。
在所有情况下,您还需要将其放入 ~/.bashrc (或 ~/.zshrc)中:
export INPUTRC=~/.inputrc
如果这不起作用,或者您有不同的终端,请转到您的终端并输入Ctrl+ V Ctrl+ ->。然后使用它代替"\e[1;5C"
或"\eOC"
上面。重复Ctrl+ <-。
请注意,您需要使用以下命令编写键盘转义序列输入语法,例如
\C
意味着控制\e
^[
表示转义(在上面使用 Ctrl+V 键入时显示)
答案2
如果您使用 ZSH,则需要采取不同的方法,因为引用来自ArchLinux 的 ZSH 指南:
Zsh 不使用 readline #像 bash#,而是使用自己的、更强大的 zle。
它不读取 /etc/inputrc 或 ~/.inputrc。
阅读该指南后,我认为我需要 ZSH 的现代源来了解如何执行此操作的一般概念,因此我发现了这个哦我的 zsh 文件它描述了我想要的行为,我将想要的相关部分复制到我的 ~/.zshrc 中:
bindkey -e #Use emacs mode, it's more sane for beginners
bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word
bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word
# Also, If you want to copy paste this into your zshrc,
# I'm pretty sure you would have to add this at the top :
# setopt interactive_comments