st0*_*0rk 13 bash terminal homebrew zsh autocomplete
我面前有一个新鲜的mac,我安装了自制软件(很好),哦我的zsh(很好).
我正在尝试安装autojump,这是一个智能的目录数据库.例如,你可以"跳"到~/Documents与j 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.我不知道还有什么可能是错的,因为这是一个全新的安装.
在.zshrc中,你必须使用autojump.zsh,而不是autojump.bash (我不知道它将在Mac上的哪个位置,但它将与autojump.bash位于同一个文件夹中).
在Ubuntu上,这是你需要在你的.zshrc末尾添加的内容:
source /usr/share/autojump/autojump.zsh
Run Code Online (Sandbox Code Playgroud)
要解决此问题,您应该更新该行:
[[ -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)