(oh-my-)zsh 行为:"$ command_name"在主目录中会导致"CD co



我目前正在将zshoh-my-zsh一起使用,并且遇到了烦人的shell行为。

在编辑.zshrc时,我必须在$PATH导出中进行了微妙但具有破坏性的更改,因为发生了以下情况:

~/中的 shell 提示符下,发出例如flutter命令...

$ flutter

。结果在:

$ ~/flutter/(好像打电话给$ flutter被解释为$ cd flutter(

但是,在任何其他目录(包括$ ~/flutter(中发出$ flutter会导致正确执行flutter命令。go和其他人也是如此。

我的.zshrc导出2行按以下方式$PATH

export PATH=$HOME/bin:$HOME/.emacs.d:$HOME/flutter/bin/cache/dart-sdk:$HOME/flutter/bin/cache/dart-sdk/bin:$HOME/.pub-cache/bin:$HOME/.composer/vendor/bin:$HOME/.cargo/env:$HOME/.platformio/penv/bin:$HOME/flutter/bin:$PATH

我一直在将.zshrc版本与其他备份进行比较,我可能遗漏了一些东西,但没有发现任何差异。

在您看来,似乎有什么不对劲的?

如果您以前遇到过这种烦恼,您是如何纠正的?

解释

这是一个叫做AUTO_CD的功能。

AUTO_CD (-J(

如果发出的命令无法作为普通命令执行,并且该命令是目录的名称,请对该目录执行 cd 命令。

http://zsh.sourceforge.net/Doc/Release/Options.html#Changing-Directories

AUTO_CD由文件oh-my-zsh/lib/theme-and-appearance.zsh中的oh-my-zsh启用。

...
setopt auto_cd
setopt multios
setopt prompt_subst
[[ -n "$WINDOW" ]] && SCREEN_NO="%B$WINDOW%b " || SCREEN_NO=""
...

溶液

加载oh-my-zsh后,在~/.zshrc中追加以下命令以禁用此功能。

unsetopt AUTO_CD

相关内容

  • 没有找到相关文章

最新更新