我面前有一个新鲜的mac,我安装了自制软件(很好),哦我的zsh(很好)。
我正在尝试安装autojump,这是一个智能的目录数据库。例如,您可以在终端中使用~/Documents
“跳转”到j doc
。
我这样做了
brew install autojump
我已经有了我的.zshrc看起来很好看。我在其中添加了一行说它:
[[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh
当我启动iterm2时,我收到以下警告:
/usr/local/Cellar/autojump/21.3.0/etc/autojump.bash:13: command not found: complete
/usr/local/Cellar/autojump/21.3.0/etc/autojump.bash:55: = not found
我用brew来安装其他东西,我可以成功运行autojump -s
,所以我知道它正在看$path
。我不知道还有什么可能是错的,因为这是一个全新的安装。
在你的.zshrc中,你必须提供autojump.zsh,而不是autojump.bash(我不知道它将在Mac上的位置,但它将与autojump.bash位于同一个文件夹中)。
在Ubuntu上,这是你需要在你的.zshrc末尾添加的内容:
source /usr/share/autojump/autojump.zsh
要解决此问题,您应该更新该行:
[[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh
说:
[[ -s `brew --prefix`/etc/autojump.zsh ]] && . `brew --prefix`/etc/autojump.zsh
即使用.jsh版本的autojump脚本。这为我解决了这个问题。
That file没有Shebang。这意味着它可能会被Zsh解释。
这是一个问题,因为complete
是一个Bash builtin。
也许this可能是你的修复,或者也许
[[ -s `brew --prefix`/etc/autojump.sh ]] && bash `brew --prefix`/etc/autojump.sh
你需要添加
[[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh
到你的~/.bash_profile
。 Homebrew在你安装时告诉你这个,但我第一次没有注意到它,因此来到这个网页。