ZSH:即使不明确,也在第一个选项卡上插入补全?

ZSH:即使不明确,也在第一个选项卡上插入补全?

目前,当我第一次点击选项卡时,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它会立即膨胀。

相关内容