zsh 自动完成的奇怪行为

zsh 自动完成的奇怪行为

我最近将我的两台服务器的域名从 更改mdorst.netmars.mdorst.net。现在,当我进入 ssh 时,其中一个服务器按预期自动完成,而另一个则没有。

$ ssh michael@o<Tab>

自动完成

$ ssh [email protected]

这正是我想要的。但是当我输入

$ ssh michael@c<Tab>

它会自动完成

$ ssh [email protected]

并将光标置于 m 之后。

我最好的猜测是,它知道我输入了以下两个内容

$ ssh [email protected]
$ ssh [email protected]

之前,想知道哪一个。非常聪明!只是我不想要这种行为,所以我回过头来.zsh_history删除了所有出现的curiosity.mdorst.net,但问题仍然存在!

这让我非常困惑,因为我opportunity.mdorst.net以前也这样做过,但当我输入时不会发生这种情况o<Tab>,只有当我输入时才会发生这种情况c<Tab>

我怎样才能使其自动完成到正确的域?

答案1

zshssh正在从文件中收集有关用户名和访问过的主机的信息以供完成

  • /etc/hosts
  • /etc/ssh/ssh_known_hosts
  • 〜/.ssh /已知主机

如果未设置hosts和样式。(来源:手册)known-hosts-fileszshcompsys

因此,您应该首先检查您的~/.ssh/known_hosts文件并删除您不想完成的远程计算机的行。

相关内容