由于使用Ctrl-r在历史记录中导航很麻烦,你可以考虑hh 。 https://github.com/dvorka/hstr
这使得导航更加简单、直接和高效–包括运行命令。
如果你的shell配置为使用vi
键绑定(set -o vi
或在set editing-mode vi
中有$HOME/.inputrc
),那么你用<Esc>/some-command<Return>
进行搜索,并点击n
(下一个)或Shift-n
(上一个)来循环浏览命令行历史。
我喜欢HSTR,但有时似乎无法安装它。所以我用 fzf 写了一个别名,模仿它的行为(hx
,代表 “历史执行")
alias hx='eval $(history | sed "s/^ *[0-9]* *//g" | fzf --tac --tiebreak=index --height=10)'
history
: 好吧,得到历史 sed
: 从列表中删除数字列(POSIX) fzf
: 这里是神奇的,允许你交互式地模糊搜索列表,或者用C-J
和C-K
移动,然后用Enter
执行命令。--height
: 设置显示的行数。--tac
: 恢复列表 (对于历史记录来说更合理) --tiebreak=index
: 当 fzf 更新结果时,保持历史记录顺序。