可以将Bash配置为在当前输入行上搜索字符串吗?

时间:2009-10-07 04:58:54

标签: bash readline

使用命令行时的快速定位位置(是的,我是Emacs粉丝)。在查看Bash'男人之后,我找不到这样的提示。是否需要修改readline的源代码来支持这个?

非常感谢!!

2 个答案:

答案 0 :(得分:3)

我不知道在命令行中直接执行此操作的方法,但bash确实支持将在您选择的编辑器中打开命令行的按键。来自bash手册页:

   edit-and-execute-command (C-xC-e)
          Invoke  an  editor  on the current command line, and execute the
          result as shell commands.   Bash  attempts  to  invoke  $FCEDIT,
          $EDITOR, and emacs as the editor, in that order.

因此,在emacs绑定模式(默认)中按CTRL-x CTRL-e或在vi绑定模式下调用ESC v(set -o vi)将打开由上述环境变量指定的编辑器中的现有命令行以上。您可以编辑命令行,一旦保存并退出编辑器,将执行命令。

答案 1 :(得分:3)

CTRL-r(反向搜索)将允许您搜索当前行以及历史记录中的任何内容。

如果你想跳回几个参数,你可以命中空格,然后再按CTRL-r“再次找到”。当光标位于最后一个搜索结果时,Escape将突破它。