zsh:如何使制表符补全不需要 space 到光标后的下一个单词?
zsh: how to make tab completion need no space to next word after cursor?
Tab 补全 zsh
和 bash
之间有一个恼人的区别:
假设你写了一些命令并想在行首添加一些东西:
$ compute --some --stuff
然后你跳到行首开始写sudo
(不好的例子-只是为了演示)
$ sudcompute --some --stuff
^ <---cursor
bash
会让你完成 sud
到 sudo
而 zsh
会尝试完成 sudcompute
.
所以在这种情况下你必须写一个 space,向后跳一个字符并尝试用制表符补全。
如果您仍然习惯 bash
,您会尝试在 sud
之后使用制表符补全,然后将您开始编写的命令渲染成完全无用的东西。
简而言之:是否有一个选项可以让 zsh
完成光标左侧的短语,而不管它是否以 space 结尾?
刚刚查看了我的 .zshrc
文件,我想这就是你想要的:
bindkey '^i' expand-or-complete-prefix
其中 ^i
是 <Ctrl-I>
,通常是制表符。
Tab 补全 zsh
和 bash
之间有一个恼人的区别:
假设你写了一些命令并想在行首添加一些东西:
$ compute --some --stuff
然后你跳到行首开始写sudo
(不好的例子-只是为了演示)
$ sudcompute --some --stuff
^ <---cursor
bash
会让你完成 sud
到 sudo
而 zsh
会尝试完成 sudcompute
.
所以在这种情况下你必须写一个 space,向后跳一个字符并尝试用制表符补全。
如果您仍然习惯 bash
,您会尝试在 sud
之后使用制表符补全,然后将您开始编写的命令渲染成完全无用的东西。
简而言之:是否有一个选项可以让 zsh
完成光标左侧的短语,而不管它是否以 space 结尾?
刚刚查看了我的 .zshrc
文件,我想这就是你想要的:
bindkey '^i' expand-or-complete-prefix
其中 ^i
是 <Ctrl-I>
,通常是制表符。