AX 爱鲜报

zsh-autosuggestions

为 zsh 提供类似 Fish 的快速、无干扰自动建议插件。它根据历史记录与补全引擎在你输入时以灰色提示后续命令,按右方向键或 End 即可采纳,显著提升终端输入效率。

爱鲜报评分

0.0

0 人评分

36k

星数

否

中文

Shell

主语言

是

活跃

60

贡献者

人工分析

EDITORIAL

推荐理由

这是 zsh 生态中装机量极高的必备插件,Star 数超过 3.6 万,社区验证充分。它基于历史与补全策略给出建议,响应快、干扰小,几乎不改变原有操作习惯。配置项丰富,可按需调整高亮样式、建议策略与快捷键,适合所有长期使用终端的开发者。

适用场景

  • 日常终端命令输入加速
  • 重复性运维/部署命令快速复用
  • Oh My Zsh 或原生 zsh 环境增强
  • 多项目开发时快速切换常用命令
  • 教学演示中展示命令补全效果

优点

  • 安装配置简单,兼容 Oh My Zsh 等主流框架
  • 建议基于历史与补全,命中率高且响应迅速
  • 支持异步获取建议,几乎无输入延迟
  • 高亮样式、建议策略、快捷键均可自定义
  • MIT 协议,社区活跃、文档完善

缺点

  • 仅支持 zsh,不适用于 bash/fish 等其他 shell
  • 需 zsh 4.3.11 及以上版本
  • 部分终端(如 iTerm2)需调整配色才能看清建议
  • 异步模式在旧版 zsh 中存在 Ctrl+C 重置问题
上手难度 入门

项目简介

zsh-autosuggestions 是一款为 zsh 提供类似 Fish 自动建议能力的插件。当你输入命令时,它会在光标后以灰色显示一条建议,内容来自命令历史或补全引擎。

  • 按 → 或 End 采纳整条建议
  • 按 forward-word 对应的快捷键可部分采纳
  • 建议不会打断输入,只是“提示”

安装与启用

项目在仓库的 INSTALL.md 中给出了多种安装方式(如手动克隆、包管理器、Oh My Zsh 插件等)。核心步骤通常是:把插件放入 zsh 可加载的目录,然后在 ~/.zshrc 中 source 插件脚本。

# 示意:在 ~/.zshrc 中加载插件(具体路径以你的安装方式为准)
source /path/to/zsh-autosuggestions/zsh-autosuggestions.zsh

使用 Oh My Zsh 时,可将插件加入 plugins=(...) 列表,并把自定义配置放到 $ZSH_CUSTOM 目录。

常用配置

高亮样式

通过 ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE 调整建议文字的颜色与样式,默认 fg=8:

ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#ff00ff,bg=cyan,bold,underline"

建议策略

ZSH_AUTOSUGGEST_STRATEGY 是一个数组,按顺序尝试不同策略:

  • history:取历史中最近匹配项
  • completion:基于 Tab 补全结果(依赖 zpty 模块)
  • match_prev_cmd:优先匹配“上一条命令相同”的历史项
ZSH_AUTOSUGGEST_STRATEGY=(history completion)

其他实用选项

  • ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE:超过指定长度不再建议,适合粘贴大段文本
  • ZSH_AUTOSUGGEST_HISTORY_IGNORE:用 glob 模式忽略某些历史建议,如 "cd *"
  • ZSH_AUTOSUGGEST_COMPLETION_IGNORE:对匹配模式的内容跳过补全建议
  • ZSH_AUTOSUGGEST_MANUAL_REBIND:关闭自动重绑定以提升性能

快捷键绑定

插件提供若干 widget,可用 bindkey 绑定:

Widget 作用
autosuggest-accept 采纳当前建议
autosuggest-execute 采纳并执行
autosuggest-clear 清除建议
autosuggest-fetch 主动获取建议
autosuggest-toggle 开关建议
bindkey '^ ' autosuggest-accept

注意事项

  • 仅适用于 zsh(要求 v4.3.11+)
  • 部分 iTerm2 用户需确保背景色与 Bright Black 颜色不同,否则建议不可见
  • 旧版 zsh(< 5.0.8)异步模式存在 Ctrl+C 重置问题,可改用同步模式

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。