ske*_*ept 14 bash shell emacs key-binding readline
在 bash 中,Ctrl+r命令非常有用,我输入Ctrl+r whatever并在我的历史记录中搜索包含单词的命令whatever。但是,如果我输入whatever并意识到我想搜索该词并点击Ctrl+r没有任何反应。
有没有办法按下一个键并让它表现得好像我输入了Ctrl+r whatever而不是whatever Ctrl+ r?
我有以下内容.inputrc:
"\C-p": history-search-backward
Run Code Online (Sandbox Code Playgroud)
但这仅在行的开头相同时才有效。
小智 12
您可以使用已经输入的内容轻松搜索 bash 的历史记录。
假设您刚刚输入curl -I http://superuser.com并忘记先输入Ctrl+ r:
$ curl -I http://superuser.com
Run Code Online (Sandbox Code Playgroud)
如果您想对历史进行 i-search,请先转到行首( Ctrl+ a),输入 i-search ( Ctrl+ r) 并键入Ctrl+ y。这应该使用您已经输入的整个文本的内容进行搜索:
(reverse-i-search)`curl -I http://superuser.com': curl -I http://superuser.com/faq
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用Ctrl+w而不是Ctrl+y来仅使用您刚刚输入的文本的第一个单词进行搜索:
(reverse-i-search)`curl': curl -I http://superuser.com/faq
Run Code Online (Sandbox Code Playgroud)
如果您想在一次按键中完成所有这些操作,您可以将单个键绑定到键盘宏。如果你想使用,比如说,F12运行:
$ bind '"\e[24~":"\C-a\C-r\C-y"'
Run Code Online (Sandbox Code Playgroud)
这将持续到会议。
只需在您的~/.inputrc:
"\e[24~":"\C-a\C-r\C-y"
Run Code Online (Sandbox Code Playgroud)
请注意,这里我们省略了单引号。
您可能会发现此答案很有用。
| 归档时间: |
|
| 查看次数: |
2072 次 |
| 最近记录: |