最直接高效的历史命令搜索方式是 Ctrl + R 启动反向搜索;若需输入前缀后用 ↑/↓ 筛选,须在 ~/.zshrc 中配置 bindkey;Cmd + ; 可一键补全最近匹配历史命令。
在 macOS 的 Zsh 中,最直接、高效的历史命令搜索方式是用 Ctrl + R 启动反向搜索(reverse-i-search),输入关键词就能实时匹配历史命令。但若你希望“输入前缀后按 ↑/↓ 直接筛选”,需要额外配置——默认 Zsh 不启用前缀匹配,需通过 bindkey 绑定实现。
这是 Zsh 原生支持、无需安装插件的快捷方式:
(i-search)' 提示git p),自动匹配最近执行过的含该子串的命令stty -ixon 已设,否则可能被系统拦截)默认按 ↑ 会逐条回溯所有历史命令,不区分前缀。要实现“输入 ssh 后按 ↑ 只显示 ssh 开头的命令”,需在 ~/.zshrc 中添加:
bindkey '^[[A' history-search-backward
bindkey '^[[B' history-search-forward
source ~/.zshrc 生效git,再按 ↑,才会列出 git commit、git push 等iTerm2 或较新版本 Terminal 支持该快捷键(Zsh 配合 oh-my-zsh + zsh-autosuggestions 插件时更稳定):
npm i),按 Cmd + ;
zsh-autosuggestions 插件,并确认 iTerm2 的「Preferences → Keys」中未冲突占用该组合键配合使用可进一步减少翻找成本:
history | grep "关键词":在全部历史中全文检索,适合模糊回忆场景HISTSIZE=5000 和 SAVEHIST=5000 到 ~/.zshrc,避免历史记录过早被覆盖