x输入-Ctrl+如果历史向后搜索被映射,则行为不当

x输入-Ctrl+如果历史向后搜索被映射,则行为不当

我在我的中使用这些行~/.inputrc

"\e[5~": history-search-backward
"\e[6~": history-search-forward

使用这些设置,当我c在提示符下键入并执行时,bash 仅显示从历史记录PageUp开始的命令。则相反。我发现这对我来说非常有成效。cPageDown

Ctrl当我执行+操作时,如果我的 inputrc 文件中没有这些行Left,光标将用于向左移动一个单词,而Ctrl+Left则相反。但是通过上面提到的那些设置,当我执行Ctrl+LeftCtrl+时,Right它会打印;5Dand ;5C

那么我该如何让Ctrl+ Left& Ctrl+Right做正确的事情呢?

答案1

readline这些运动的两个命令是forward-wordbackward-word。您可以使用(默认的 emacs 绑定)分别访问它们: AltfAltb

Left要使用和键进行工作Right,您需要在~/.inputrc.

首先,通过从终端获取这些按键的原始输出来确认正确的转义序列:输入Ctrlv CtrlLeftCtrlv CtrlRight并记下序列(类似于^[Oc^[Od)。然后将这些行附加到您的.inputrc

"\eOc": forward-word
"\eOd": backward-word

全部读行命令可以在你的身上反弹.inputrc

答案2

请注意,这些序列可能因终端而异。从您的文字来看,您似乎使用 gnome-terminal 。

# on gnome-terminal
"\e[1;5D": backward-word
"\e[1;5C": forward-word

相关内容