一个可能的解决方法/技巧

一个可能的解决方法/技巧

Ctrl我保留了相当长的 bash 历史记录,有时当我使用 bash 反向搜索功能( + )搜索某些内容时r,我最终会到达搜索历史记录的开头,但仍然没有找到我需要的内容,然后我想回到末尾的历史文件。一种选择是使用向前搜索功能(Ctrl+ s),该功能更接近历史记录的末尾或执行#,但是是否还有键盘快捷键可以直接移动到bash历史记录的末尾?

答案1

有 readline 函数end-of-history,默认映射到M- >,但如果在反向搜索期间使用它会退出反向搜索提示。

一个可能的解决方法/技巧

开始字符串搜索

相反,要使用反向搜索,您可以使用history-search-backwardand history-search-forward(默认未映射),将它们映射到up/down(非常有用).inputrc

# up-down arrow to search in history
"\e[A":history-search-backward
"\e[B":history-search-forward

因此,输入后您可以按up (而不是Ctrl+ R)进行反向搜索,当您想返回到历史记录的末尾时,可以end-of-history按(M- >)使用该功能

这边走“搜索字符串必须匹配历史行的开头,“因此,如果您搜索ls -ltr,则必须键入ls然后按 up按键。

子串搜索

如果你想 ”搜索字符串可以匹配历史行中的任何位置,“你必须使用history-substring-search-forward and history-substring-search-backward

# up-down arrow to search in history
"\e[A":history-substring-search-backward
"\e[B":history-substring-search-forward

这样,如果您搜索ls -ltr,您可以键入ls,但也可以ltr在按 之前键入up

参考:Bash 参考手册 – 历史命令

相关内容