当我打字时
cd l
并点击 Tab,zsh 自动完成
cd lightdm/
这不是我可用的目录(事实上我已经卸载了 lightdm)。
我该如何阻止这种情况发生?
我已经安装了 prezto。
答案1
这可能是中记录的AUTO_NAME_DIRS
和选项的组合。CDABLE_VARS
zshoptions(1)
% PS1='%# ' zsh -f
% setopt AUTO_NAME_DIRS
% setopt CDABLE_VARS
% autoload -U compinit
% compinit
% cd a # was mashing tab here to no avail (nor asdf)
cd: no such file or directory: a
% hash -d asdf=/etc
% cd asdf/ # "cd a" now tab completes
(这是通过搜索zshoptions
“dir”和“cd”相关字符串发现的。)
要关闭此功能,请禁用其中一个或多个选项 ( unsetopt
) 或删除完成代码正在查找的变量。
答案2
正如用户thrig
在回答中已经提到的,这是由CDABLE_VARS
设置的选项引起的。
我有一个类似的问题并通过添加来修复它
unsetopt CDABLE_VARS
线路到我的.zshrc
答案3
我最终调查.zhistory
并删除了所有lightdm
对此的引用,解决了我的问题。也许还有其他地方 zsh 存储完成,但我不知道它们是什么。