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