分类: 服务器与代理 发表时间: 2020年03月24日

标题: MacOS通过oh-my-zsh配置ZSH记录

摘要: zsh相比于bash提供了更丰富的定制扩展能力,不过手动配置zsh比较复杂,因此衍生出了一些通用的zsh配置方案,比较受欢迎的就是oh-my-zsh。本篇以oh-my-zsh为基础记录一下zsh的定制过程

安装zsh

最新版本的macOS High Sierra已经将默认的shell切换到了zsh,如果是低版本的shell可以通过brew安装并切换

安装zsh:brew install zsh
切换shell:chsh -s /bin/zsh就可以将默认shell切换到zsh,该命令同时适用于将默认shell切换回bash

安装oh-my-zsh

oh-my-zsh提供了自动安装脚本,通过命令即可安装sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

配置主题

oh-my-zsh提供了一个脚本来浏览所有主题,命令~/.oh-my-zsh/tools/theme_chooser.sh可以展示所有已安装的主题

也可以手动设置主题,修改~/.zshrc文件中ZSH_THEME变量的值为某个主题的名称,重启终端或执行source ~/.zshrc命令即可生效

如果不喜欢oh-my-zsh的主题那么将ZSH_THEME变量设置为空或注释掉就可以恢复zsh的默认样式

吐槽:实在不理解oh-my-zsh的主题为什么都要带那个git分支的显示,明明挺好看的主题,非得带那么个累赘,搞得提示符的显示都慢好多,去掉了多好,难道sourcetree不香吗

配置插件

配置插件只需要修改~/.zshrc文件中的plugins选项,将需要的插件以空格分隔加入此项,然后重启终端或者执行source ~/.zshrc

我个人比较喜欢的插件有:z/docker/docker-compose

另外要注意,有的时候加入了插件却不生效,此时需要在~/.zshrc文件的最后加上两行

  1. autoload -Uz compinit
  2. compinit

配置命令及语法高亮插件

命令及语法高亮插件不在oh-my-zsh的默认插件列表里,我们需要手动安装,macos系统可以通过brew来安装此插件,命令brew install zsh-syntax-highlighting

之后需要将该插件配置到~/.zshrc中,在source $ZSH/oh-my-zsh.sh这一行之后添加下面这一行命令
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

配置历史命令补全插件

对于已经输入并执行过的历史命令,有一个插件可以提供自动补全以减少重复输入,命令brew install zsh-autosuggestions

之后在~/.zshrc文件中添加以下行,与上边的命令相同,要添加在source $ZSH/oh-my-zsh.sh行之后
source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh

注意,此命令最好加在命令及语法高亮插件的命令之前

brew为一些命令提供了自动补全(推荐)

我们通过brew安装的很多软件包都带有Cli命令,此时我们可以配置zsh对这些命令进行自动补全

~/.zshrc文件中添加以下行,注意该行要添加在配置插件一节中,最后两行命令之前
fpath=(/usr/local/share/zsh/site-functions $fpath)

配置其他命令的自动补全(推荐)

zsh-completions插件提供了一些命令的自动补全,通过命令安装brew install zsh-completions

~/.zshrc文件中添加以下行,注意该行要添加在配置插件一节中,最后两行命令之前
fpath=(/usr/local/share/zsh-completions $fpath)