MacOS配置Oh-My-Zsh

最近换了MacBook,尝试了下MacOS,发现和在Linux使用的时候差不多,默认使用的Shell还是zsh,那应该就可以安装oh my zsh,简单查了下资料,发现确实可以。

0.前后对比

安装前

安装后

1.安装Oh-My-Zsh

由于国内网络访问Github经常出现问题,所以使用Gitee的镜像,curl或者wget二选一就可以。

> ##### 使用 curl 安装
> sh -c "$(curl -fsSL https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"
> ##### 使用 wget 安装
> sh -c "$(wget -O- https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"

在安装过程中,会提示是否修改默认Shell为Zsh,如果你的默认Shell不是zsh,可以输入y修改,如果已经是zsh了,那么Y和n一般没什么区别。

查询默认Shell可以通过以下命令:

echo $SHELL

如果命令输出是/bin/zsh 那就代表已经在使用zsh作为默认Shell了。

2.配置字体

默认的Oh-My-Zsh使用的主题是ys,我比较喜欢**。

上面是我配置完成的效果

根据Github上官方的教程,中国用户可以使用Gitee上的官方镜像加速下载。

git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

下载好Powerlevel10K之后,还需要设置一个字体,才能完美显示所有Powerlevel10k的所有符号,如果字体不符合,那么只能显示部分符号和主题。

我通常会选择Jetbrains mono字体的NL字体,也就是不包含连字 (ligatures) 的版本。

完整的支持Powerlevel10k的字体可以参考Nerd-Fonts

关于字体缩写的部分,ChatGPT的回复

  1. NL: "NL" 或 "NoLig" 等标签可能用于表示不包含连字 (ligatures) 的版本。连字在某些编程环境中可能会导致可读性问题,因此某些字体提供了不连字的版本供那些不希望使用连字的用户使用。
  2. MONO: 这通常是 "monospaced" 的缩写,意味着这是一个等宽字体。等宽字体中的每个字符都占据相同的水平空间,与常规的比例字体相反,常规的比例字体中不同字符的宽度会有所不同。
  3. PROPO: 这可能是 "proportional" 的缩写,意味着字体的字符具有不同的宽度,与等宽字体相反。

建议每个人根据自己的爱好选择,我选择的字体效果可以查看上面的样式图,根据字体名字也可以看出来,这是JetBrains家的字体。

我觉得通常还是使用MONO和NL字体比较好,等宽不连字,有更好的可读性。

下载好字体包之后,解压,进入目录之后,可以Command+A全选,然后不要松开Command,点击非字体的文件,例如JetBrains字体中有个OFL.txt和readme.md,取消选择这两个文件之后,右键打开,就可以批量安装字体了。

安装好字体,打开终端,在左上角状态栏,点击终端>设置>描述文件>文本>字体右边的更改来选择安装好的新字体。

3.开始正式配置Powerlevel10k。

首先,使用文本编辑器或者VIM或者各种文本编辑的工具,打开用户目录/Users/用户名/下的隐藏文件.zshrc,我使用的是Vim:

vim ~/.zshrc

Vim怎么操作建议自行查询下,或者使用其他文本编辑工具,我已经习惯vim了。

找到ZSH_THEME="ys"​这一行,修改成ZSH_THEME="powerlevel10k/powerlevel10k"

之后保存并退出,输入命令:

source ~/.zshrc

就可以进入Powerlevel10k的配置中了。

这一步是确认字体是否有残缺,首先,这一步看到的如果和我一样,按Y。否则按N。

如果看到的是个锁头,按Y,否则按N。

这里就出现了错误,描述是个箭头,但是显示的是一个类似于蛇的东西,是错的,所以按N。如果你显示的是下面的图片,那么就按Y。

在上一步按N之后,这一次出现的是向上的箭头,所以按Y。否则按N。

这一步应该是测试字体是否等宽,如果绿色箭头指示的是1,按1,如果指示的是2,则按2。

这一步应该同样是为了测试是否等宽,如果字体是非等宽字体,那么图标会和X合并,所以按N。

显示和我相同的话,按Y。字体相关的测试到这里基本就结束了。接下来是主题的配置。如果你想设置的和我相同,可以按照下面的图片继续设置。或者按照自己的喜好设置。

选择你想要的样式,这里我选择的是3,彩色的。

这部分是字符编码设置。我选择的Unicode。

选择后半段是否显示时间,也就是现在的时间,不过这个时间并不会实时刷新,每一次执行命令的时候才会刷新一次。我选择的是2。

样式的选择,可以看一下上面的不同,我选择的是1。

选择1。

选择1。

选择2。

选择2。

选择4。

选择1。

紧凑和宽松,我选择的2。

显示更多图标还是更少图标,选2。

选择2。

这里可以自己选择,选择1的话,终端上的历史命令不会携带主题,只有输入框有主题,选择2的话,是历史命令和输入框中都有主题,就像下面这样。我选择了2。

之后就是确认了。

到这里就相当于快要完成了,按1保存配置。

按1将配置写入~/.zshrc文件。

这就是完成的效果,完成安装之后,默认只有当前用户使用了主题,如果使用命令sudo su切换到root用户,是无法没有主题的。其他用户也是没有主题的。

4.(可选)配置zsh插件

zsh是支持插件的,可以添加一些实用的插件让zsh更好用,通常我会添加zsh-autosuggestions和zsh-syntax-highlighting,一个是自动提示补全插件,一个是高亮插件。

自动补全插件:

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

高亮插件:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

这些要通过Github了,如果有代理或者能够直连Github,那么是可以正常下载的。

##配置Git命令代理的方法
##如果有代理工具,自行修改ip和port,没有工具就算了,没用的。
git config --global http.proxy 'http://ip:port'

git config --global https.proxy 'http://ip:port'

之后编辑.zshrc文件,找到

plugins=(git)

这一行,之后修改成

plugins=( 
 git  
 zsh-autosuggestions
 zsh-syntax-highlighting
)

具体格式是个人习惯,反正我是习惯修改成这样,如果已经有多个插件,只需要在最后新增即可。

保存后使用命令:

source ~/.zshrc

加载配置,即可使用。

总结

到手配置一个好看一点的终端还是有必要的,有相关需求的人大概会经常使用终端,也可以使用第三方终端软件,我是本机操作或者其他不需要保存的使用自带终端,所以没有使用iTerm2作为终端。其他的例如服务器操作我用的是Termius,本身界面还不错,就不需要过多美化了。

​​

最后修改:2023 年 09 月 21 日
如果觉得我的文章对你有用,请随意赞赏