Linux 命令提示符 - Ctrl + r - 效果不佳

Linux 命令提示符 - Ctrl + r - 效果不佳

每当我在命令提示符中按下Ctrl+r时,似乎我有 10 毫秒的时间来完成输入我正在搜索的内容,此时它会搜索我迄今为止输入的内容。

它似乎还缺少我输入的命令。

此外,当我在搜索失败后按下 Esc 键时,它会将找到的任何愚蠢的东西放到我的命令行上。我如何回到空的命令行?

另外我如何滚动浏览搜索结果?

如果这个反向搜索不能更好,有没有更好的方法来搜索我的历史记录?

答案1

“reverse-i-search” 中的“i”代表“增量”,因此它会在您输入时进行搜索。如果您希望它等到您完成输入,您可以使用history-search-backward(not bound) 或non-incremental-reverse-search-history(bound to Meta-p)。要使用这些功能,请先输入文本,然后按下调用该功能的按键。

我已history-search-backward绑定到 PgUp,并将“history-search-forward”绑定到 PgDn。

如您所知,要终止搜索,请按 Esc。要中止搜索并留下空白命令行,请按 Ctrl-G。

答案2

如果你有一个非常较长的历史记录可能是延迟的原因。bash 使用变量 HISTSIZE 和 HISTFILESIZE 来设置最大历史记录大小。

还要检查变量 HISTIGNORE 以查找被忽略(即未放入历史记录)的命令。例如,我将其设置为忽略如下命令ls或者出口我的历史中并不需要它。

要“滚动”搜索结果,请继续按 Ctrl-r(向后)或 Ctrl-s(向前)。但请注意,Ctrl-s 通常用于“锁定”终端(使用 Ctrl-Q 解锁),因此您可能需要重新映射到其他位置。您可以使用类似

stty stop ^G

将 Ctrl-g 映射到终端锁并释放 bash 使用的 Ctrl-s 快捷键(用于搜索向前在历史上)。

相关内容