zsh:如何使制表符补全不需要 space 到光标后的下一个单词?

zsh: how to make tab completion need no space to next word after cursor?

Tab 补全 zshbash 之间有一个恼人的区别:

假设你写了一些命令并想在行首添加一些东西:

$ compute --some --stuff

然后你跳到行首开始写sudo(不好的例子-只是为了演示)

$ sudcompute --some --stuff
    ^ <---cursor

bash 会让你完成 sudsudozsh 会尝试完成 sudcompute.

所以在这种情况下你必须写一个 space,向后跳一个字符并尝试用制表符补全。

如果您仍然习惯 bash,您会尝试在 sud 之后使用制表符补全,然后将您开始编写的命令渲染成完全无用的东西。

简而言之:是否有一个选项可以让 zsh 完成光标左侧的短语,而不管它是否以 space 结尾?

刚刚查看了我的 .zshrc 文件,我想这就是你想要的:

bindkey '^i' expand-or-complete-prefix

其中 ^i<Ctrl-I>,通常是制表符。