bash 中有类似 Vim 的历史记录吗?

bash 中有类似 Vim 的历史记录吗?

在 bash 中,可以使用上下键滚动查看命令历史记录。在 vim 中,也可以这样做(按下 后:)。但在 vim 中,如果您输入上一个命令的前几个字母,上下循环只能通过以这些字母开头的命令。这在 bash 中非常有用,对于像cd、 和vim本身这样的命令来说尤其简单。有没有办法在 bash 中实现这种行为?

我知道 bash 中的历史搜索功能,但是它使用起来并不那么简单和快捷。

答案1

以下是设置history-search-backward和的一种方法history-search-forward

步骤1:

将以下内容放入您的/etc/inputrc文件中:

$if mode=emacs
"\ep": history-search-backward
"\en": history-search-forward
$endif

(或者简单地将以下内容置于现有if语句之间)

"\ep": history-search-backward
"\en": history-search-forward

第2步:

获取你的控制台:

. ~/.bashrc

步骤3:

测试一下。例如,要向后搜索所有vim命令,请输入:

vim Alt+P

继续按Alt+ P,循环执行所有命令。


编辑:

本答案是对以下信息的总结:这里

答案2

这并不是您所追求的 - 但我总是在 .bashrc 或 .profile 中使用“set -o vi”。

要搜索以前的历史记录,请输入 esc(退出编辑模式),然后输入斜杠和您的查询。然后按 Enter 进行搜索。然后您可以使用“n”或“N”在匹配的查询中向前和向后移动。如果您习惯使用 vi,这可能是一个解决方案。

这意味着命令行会变得像 vi 一样 - 例如大写字母“A”会带您到行尾并进入编辑模式。这很有用,但如果您发现自己在非编辑模式下打字,也会造成混淆。如果您不想这样,那么另一种解决方案会更好。

相关内容