Mar*_*tin 5 ssh zsh hostname autocomplete oh-my-zsh
我正在将 zsh 与 oh-my-zsh 一起使用。不幸的是,oh-my-zsh 不使用文件~/.ssh/config
进行主机名自动完成(例如,请参见问题 #1009)。
这可以通过以下代码轻松存档:
[ -r ~/.ssh/config ] && _ssh_config=($(cat ~/.ssh/config | sed -ne 's/Host[=\t ]//p')) || _ssh_config=()
zstyle ':completion:*:hosts' hosts $_ssh_config
Run Code Online (Sandbox Code Playgroud)
但是,如果我将上述命令添加到我的~/.zshrc
文件中,~/.ssh/known_hosts
则文件中定义的所有其他主机名来源(如)都将~/.oh-my-zsh/lib/completion.zsh
被覆盖。
如何在我的文件中附加新的完成规则?':completion:*:hosts'
~/.zshrc
我认为您需要检索现有项目并附加您的项目。
zstyle -s ':completion:*:hosts' hosts _ssh_config
[[ -r ~/.ssh/config ]] && _ssh_config+=($(cat ~/.ssh/config | sed -ne 's/Host[=\t ]//p'))
zstyle ':completion:*:hosts' hosts $_ssh_config
Run Code Online (Sandbox Code Playgroud)