11

很多时候我会使用 Ctrl-R 进行反向搜索并错误输入一些字母。Bash 跳了数百行,而我正处于一周前使用的命令的中间。

有没有跳回我输入的最新命令的快捷方式?

编辑:在 CentOS 服务器和 Mac OS X 上对其进行测试后,看起来这只发生在 OS X 上。

4

5 回答 5

9

我一直在努力解决同样的问题。

您可以通过使用 ctrl-c 中止来解决此问题。无论您是在反向搜索中还是使用箭头滚动历史,中止都会在最后一个命令之后返回带有历史滚动的提示。

更新

这是我刚刚学到的一个不错的技巧。Bash 和许多其他程序在后台使用 Readline 进行命令行解释。可以在 .inputrc 文件中或使用 bind 命令配置 Readline 的键绑定。绑定可以利用 Readline 提供的一些功能。例如,我在 vi 模式下使用 Bash,但我仍然喜欢使用 Emacs 样式的 ctrl-A,所以我的 .bashrc 文件中有这一行:

绑定 '\Ca:beginning-of-line'

列出所有可用的 Readline 函数: bind -l

其中的功能是历史终结。该功能确实像它的名字所暗示的那样。这种方法与仅使用 abort 命令之间的区别在于,这使您始终处于相同的提示状态。

于 2014-01-01T01:32:00.587 回答
3

如果使用 libreadline,Alt->(或 Meta->)。有关Readline 快捷方式的更多信息或在手册页中搜索用于操作历史记录的命令。

于 2012-04-18T01:17:17.357 回答
1

在 Mac 上,试试command + . 它对我有用。我正在尝试alt+.alt+shift+.但都不适合我。然后发现command + .确实有效

于 2018-02-10T18:53:27.440 回答
0

您可能想尝试类似“建议框”的历史HSTR。它读取 bash 历史记录并允许快速导航和过滤 - 您可以查看类似历史记录条目的上下文。一旦您选择了一个历史条目,就可以在命令行上对其进行编辑。

于 2014-01-10T00:55:02.823 回答
0

也许不完全是您想要的,但是当您处于 CTRL-r(反向搜索)模式时,您可以通过使用退格来修复您输入错误的字符。

于 2012-04-18T01:11:51.017 回答