配置向上箭头以浏览具有相同初始字符的命令而不是所有以前的命令

ger*_*rit 24 bash readline

bash命令行上,?给我上一个命令。在ipythonor 中的命令行上matlab,当我输入几个字符时,?会给出以前输入的以这些字符开头的命令。我怎样才能在 中启用这种行为bash

我知道搜索命令行历史的更高级方法,但有时简单的方法更方便。

jas*_*yan 27

您正在寻找的 readline 命令是以下history-search-*命令:

history-search-forward
在历史中向前搜索当前行开头和当前光标位置(点)之间的字符串。这是一个非增量搜索。
history-search-backward
在历史中向后搜索当前行开头和点之间的字符串。这是一个非增量搜索。

将这些绑定到您的 中.inputrc,如下所示:

"\e[A": history-search-backward            # arrow up
"\e[B": history-search-forward             # arrow down
Run Code Online (Sandbox Code Playgroud)

将允许您输入命令的第一个字符,然后使用UpDown键仅在您的.bash_history以该字符串开头的那些命令中移动。

例如,输入viUp将带您到以 开头的第一个命令vi,例如vim somefile。进入Up将带您到下一个前一个实例,依此类推。

您可以在此处阅读有关所有 readline 绑定的更多信息:http : //linux.about.com/library/cmd/blcmdl3_readline.htm


小智 10

将以下内容添加到 ~/ 中的 .inputrc 中,以执行您的建议:

"\e[B": history-search-forward
"\e[A": history-search-backward
Run Code Online (Sandbox Code Playgroud)

也许您可能还想将以下内容添加到您的 .bash_profile 中:

export INPUTRC=~/.inputrc
Run Code Online (Sandbox Code Playgroud)