我目前使用以下配置我的 zsh 选项卡完成:
autoload -U compinit && compinit
zstyle ':completion:*:default' menu select=0
zstyle ':completion:*:default' select-scroll 0
我喜欢这个的是:
- 明确的完成立即完成
- 模棱两可的补全被尽可能地扩展(标签的第一次罢工)并且歧义被列出给我(第二次罢工)
- 进一步点击标签(列表出现后再点击一个标签)我通过菜单选择,即提示停留在歧义列表上方,其中一个被突出显示并插入到提示中,然后进一步点击标签,我转到下一项。即使在无法显示歧义列表的情况下,提示下方的列表也会滚动。
我不喜欢的:
- 如果列表太长而无法显示,它首先会被完全打印出来,提示最终会出现在列表下方,只有在下一个笔划时,我才会再次出现在终端顶部以进行菜单选择模式。
所以我想将行为更改为:
- 明确的完成立即完成
- 模棱两可的补全被尽可能扩展(第一次敲击选项卡),歧义总是在提示下方列出,即使列表太长而无法完全显示(无论是第一次还是第二次敲击都无关紧要)
- 进一步点击标签(列表出现后再点击一个标签)我通过菜单选择,即提示停留在歧义列表上方,其中一个被突出显示并插入到提示中,然后进一步点击标签,我转到下一项。即使在无法显示歧义列表的情况下,提示下方的列表也会滚动。
一个关键方面是歧义列表在第一个插入提示之前显示。否则我已经可以使用
zstyle ':completion:*:default' menu select=0 yes=0