如何更改 bash 中的上一个/下一个单词快捷方式?

如何更改 bash 中的上一个/下一个单词快捷方式?

如何将 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

相关内容