7 zsh
我一直在使用 ZSH 进行主机名补全,并希望更改默认行为。当我有多个名称相似的主机时,完成会做一些我不关心的事情。一个例子是最好的:
假设我有这些主机:
host01.stage.example.com
host02.stage.example.com
host01.prod.example.com
host02.prod.example.com
Run Code Online (Sandbox Code Playgroud)
现在,在我的提示中,我将输入:
$ ssh hos<tab>
Run Code Online (Sandbox Code Playgroud)
zsh 会告诉我:
$ ssh host..example.com
Run Code Online (Sandbox Code Playgroud)
将光标放在“host”之后,并向我显示一个包含主机名的菜单。我喜欢显示主机名的菜单,我只是不希望它完成所有操作。奇怪的事情发生了。大多数情况下,我必须通过 Tab 键来删除主机名,或者我必须删除该行上的额外内容。
首选方法是不完成主机名的其余部分。就像是:
$ ssh hos<tab>
Run Code Online (Sandbox Code Playgroud)
zsh 希望告诉我:
$ ssh host
host01.stage.example.com host01.prod.example.com
host02.stage.example.com host02.prod.example.com
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
您是否更改了 .zshrc 文件中的任何内容?因为当我这样做时
ssh 127<tab>
Run Code Online (Sandbox Code Playgroud)
它给了我正确的建议...光标移动到正确的位置:
ssh 127.0.<cursor>.1
127.0.0.1 127.0.1.1
Run Code Online (Sandbox Code Playgroud)
(第二行是得到的建议)