我有一个名为 的目录build
,我cd
经常进入该目录。
bu*
如果当前目录中没有任何目录,zsh
则 Tab 补全:cd bu
TAB建议messagebus/
,该目录不在.
.如果我接受这个完成,我最终会进入/private/var/empty
。
我不确定哪个zsh
选项表明此完成,但我很想将其关闭。知道哪个设置可以实现吗?
就其价值而言,这是在OS X
.在 上,我得到了具有相同设置的ubuntu
建议。libuuid messagebus
zsh
答案1
/private/var/empty
可能是messagebus
用户的主目录。当它接收到它认为看起来像用户名的函数zsh
参数时,提供主目录的扩展。cd
在您的情况下,bu
被近似匹配器扩展为messagebus
,因为在空目录中不会触发更具体的匹配器(在您的Linux系统上, 和 都uuid
作为messagebus
字符串的可能近似匹配返回bu
)。
zsh
通过在您的 中添加类似的内容,可以判断在这些情况下应该考虑扩展哪些用户~/.zshrc
:
zstyle ':completion:*' users user1 user2 root
只需列出您希望 shell 考虑的所有用户,source ~/.zshrc
以获取更改,您不应该再获得messagebus
等作为可能的完成。