You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Bash历史按输入前缀匹配滚动(类Vim/Zsh行为)

让Bash实现类似Vim/Zsh的历史命令前缀匹配滚动功能

刚好我之前也折腾过这个配置,Bash其实自带这个功能,只需要简单配置一下readline的按键绑定就行,下面给你两种实现方式:

临时生效(测试用)

如果你只是想先试试效果,直接在终端里执行下面两条命令:

bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'

执行完后,输入命令前缀(比如v)再按上箭头,就会自动跳转到最近的以该前缀开头的历史命令(比如vim bubi.txt);按下箭头则会往前查找更早的匹配项,完全符合你要的效果。不过这种方式只是临时生效,重启终端后就会恢复默认设置。

永久生效(推荐)

要让这个配置永久生效,有两种常见的配置方式:

方式1:修改~/.bashrc

打开你的~/.bashrc文件(用Vim或者你习惯的编辑器),在文件末尾添加下面两行:

bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'

保存后,执行source ~/.bashrc让配置立即生效,之后每次打开终端都会自动加载这个绑定。

方式2:修改~/.inputrc

如果你希望这个配置对所有使用readline的程序都生效(不只是Bash),可以编辑~/.inputrc文件(如果没有就新建一个),添加下面两行:

"\e[A": history-search-backward
"\e[B": history-search-forward

保存后,重启终端或者执行bind -f ~/.inputrc即可生效。

额外小提示

如果你更习惯用Ctrl+P(代替上箭头)和Ctrl+N(代替下箭头)来操作,也可以把绑定改成:

bind '"\C-p": history-search-backward'
bind '"\C-n": history-search-forward'

这样就能用你熟悉的Vim风格快捷键来匹配历史命令啦~

内容的提问来源于stack exchange,提问作者Arch Stanton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:41:33