1 介绍
介绍下oh-my-zshy两个比较好用的插件:zsh-autosuggestion和zsh-syntax-highlighting
1.1 zsh-autosuggestion
可以自动补全上一次的命令,如下图所示,输入命令前缀后,灰色部分就是补全部分,补全的是上一次执行的命令,如果想补全历史命令,可以通过键盘上下方向切换,点击键盘右方向键『->』进行补全。
1.2 zsh-syntax-highlighting
日常命令会高亮显示,错误命令会显示红色
2 安装
zsh-autosuggestion和zsh-syntax-highlighting需要从github下载到oh-my-zsh插件目录。oh-my-zsh默认安装目录在:~/.oh-my-zsh/custom,也可以通过在终端执行『**echo ZSH_CUSTOM/plugins
echo $ZSH_CUSTOM
2.1 zsh-autosuggestion
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
2.2 zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
3 配置
下载完成后,可以在插件目录:$ZSH_CUSTOM/plugins 看到下载后的插件,但是还需要进行配置才能生效
3.1 配置方式
oh-my-zsh配置文件是:~/.zshrc,因此需要编辑这个文件。打开终端,输入下面命令
vim ~/.zshrc
找到『plugins』这一行,如果你之前没有配置过插件,会发现这里会有一个默认git插件配置,接下来我们需要在后面加上zsh-autosuggestion和zsh-syntax-highlighting这两个插件。
添加完成后,保存,然后执行命令使配置生效
source ~/.zshrc
4 补充
autojump
补充一个和oh-my-zshy无关的终端插件autojump,这个插件支持目录件的快速跳转。这个插件是根据使用习惯自动调整,通过 j + 目录名可以实现快速跳转。如下图所示,我第一次通过cd命令进行homebrew目录后,后面只需要 通过 『j + homebrew』就可以快速进入homebrew页面,而不需要使用cd +完整路径 进入
安装方式
1、通过homebrew安装,执行下面命令
brew install autojump
2、修改~/.zshrc文件
vim ~/.zshrc
3、追加下面代码
[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh
4、使文件生效
source ~/.zshrc
5 问题
实际在配置过程可能会出现各种问题,下面是常见的一些问题以及解决办法
5.1 git下载超时
因为github在国内访问速度比较慢,通过git clone方式下载容易出现超时导致下载不了的问题,比如下载zsh-autosuggestion超时时,会出现下面的问题
解决方案,以zsh-autosuggestion为例
1、github.com/zsh-users/z…,进入,然后下载zip文件并解压
2、可以去掉文件名后面的master,改为:zsh-autosuggestions(也可以不改,只是为了保持一致,如果改了,需要保证在配置插件事和改后的名字是一样的)
3、移动到插3、移动到插件目录,默认在:~/oh-my-zsh/custom/plugins,也可以在终端执行:echo $ZSH_CUSTOM查看插件目录
5.2 更新zsh提示检测不到安全目录
解决方案
~/.zshrc追加下面配置,执行下面命令:source ~/.zshrc
ZSH_DISABLE_COMPFIX=true
5.3 homebrew下载autojump失败
如下图,下载autojump失败。下面这种原因是因为homebrew配置了的国内镜像,而该镜像未完全同步问题。临时去除镜像即可。
解决方案
1、打开终端,执行下面命令
export HOMEBREW_BOTTLE_DOMAIN=''
2、重新执行安装命令
brew install autojump
3、注意:大部分人配置homebrew国内镜像是由于访问国外镜像速度太慢,安装完成后,如有需要换回国内镜像,可参考:Homebrew 使用国内镜像