目前,当我第一次点击选项卡时,ZSH 会显示一个菜单,并且完成情况不明确。因此,如果我在命令提示符中输入“cd”并按 Tab 键,它将显示不同的可用补全。如果我再次点击选项卡,它将选择第一个可用的完成。
我想将这两个步骤合并为按一下 Tab 键。因此,如果我位于 'cd ' 并按 Tab 键,我希望 ZSH 插入第一个可用的匹配项(当不明确时)并显示菜单,如果第一个匹配项不是我的目录,我可以通过 Tab 键进行选择心里。
ZSH 设置工具将其放入我的 .zshrc 中,以防其中任何一个影响我的 shell 的行为:
zstyle ':completion:*' 完成者 _expand _complete _ignored zstyle ':completion:*' 列表颜色 '' zstyle ':completion:*' 列表提示 %SAt %p: 按 TAB 键查看更多内容,或输入要插入的字符%s zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' zstyle ':completion:*' 菜单选择=5 zstyle ':completion:*' 选择提示 %SScrolling 活动:当前选择位于 %p%s zstyle :compinstall 文件名 '/home/robb/.zshrc'
答案1
将此行添加到您的~/.zshrc
:
setopt menu_complete
man zshoptions
详情请参阅。
答案2
如果原始问题的 .zshrc 中没有此内容,但如果您完成了 compinstall 过程,请检查以确保完成选项上没有“_list”:
zstyle ':completion:*' completer _expand _complete _ignored _correct _approximate _prefix
使用 _list,您只能通过第一个制表符完成请求获得可能完成的列表,并且它会覆盖一些解决方案。
答案3
确保您没有_list
设置:
我有:
zstyle ':completion:*' completer _list _expand _complete _ignored _match _correct _approximate _prefix
移除_list
它会立即膨胀。