在使用反向搜索时返回bash历史记录的末尾?


12

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


2
history会告诉你所有的bash命令所做..
ryekayo

Answers:


6

有readline函数end-of-history,默认情况下映射到M- >,但是如果在反向搜索过程中使用,则会退出反向搜索提示。

可能的解决方法/技巧

开始字符串搜索

相反,要使用反向搜索,可以使用history-search-backwardhistory-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-forwardhistory-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,也可以键入。ltrup

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.