命令未找到:完成

st0*_*0rk 13 bash terminal homebrew zsh autocomplete

我面前有一个新鲜的mac,我安装了自制软件(很好),哦我的zsh(很好).

我正在尝试安装autojump,这是一个智能的目录数据库.例如,你可以"跳"到~/Documentsj doc在终端.

我这样做了

brew install autojump

我已经有了我的.zshrc看起来很好看.我在其中添加了一行说它:

[[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh
Run Code Online (Sandbox Code Playgroud)

当我启动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
Run Code Online (Sandbox Code Playgroud)

我用brew来安装其他东西,我可以autojump -s成功运行所以我知道它正在看到$path.我不知道还有什么可能是错的,因为这是一个全新的安装.

ebr*_*ult 8

在.zshrc中,你必须使用autojump.zsh,而不是autojump.bash (我不知道它将在Mac上的哪个位置,但它将与autojump.bash位于同一个文件夹中).

在Ubuntu上,这是你需要在你的.zshrc末尾添加的内容:

source /usr/share/autojump/autojump.zsh
Run Code Online (Sandbox Code Playgroud)


Ame*_*ina 5

要解决此问题,您应该更新该行:

[[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh
Run Code Online (Sandbox Code Playgroud)

说:

[[ -s `brew --prefix`/etc/autojump.zsh ]] && . `brew --prefix`/etc/autojump.zsh
Run Code Online (Sandbox Code Playgroud)

即使用.jsh版本的autojump脚本.这为我解决了这个问题.


小智 2

该文件没有 Shebang。这意味着它可能被 Zsh 解释。

这是一个问题,因为complete它是Bash 内置的

也许可以解决你的问题,或者也许

[[ -s `brew --prefix`/etc/autojump.sh ]] && bash `brew --prefix`/etc/autojump.sh
Run Code Online (Sandbox Code Playgroud)