Oh My Zsh 设置

警告
本文最后更新于 2022-06-25,文中内容可能已过时。

Oh My Zsh 配置记录

HeadPic: オリジナル 「ほしい?」 - まふゆ的插画

Oh My Zsh - a delightful & open source framework for Zsh

最近在体验 Manjaro 时使用了一段时间 Oh My Zsh,由于视觉效果优秀,便总结了 Oh My Zsh 的安装与配置过程,方便之后使用。在按此文进行配置时,需要保证网络环境可以顺利下载 Github 上的内容。

下图为 Oh My Zsh 在 WSL2 Ubuntu 下的使用效果:

1
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装完成后,会有提示询问是否设置 zsh 为默认 shell,按需选择即可 (自己用当然选 y )。

若之后需要修改默认 shell 为 zsh,则按以下步骤进行

1
2
3
4
5
# 查看系统所有shell
$ cat /etc/shells
#更改默认`shell`为`zsh`
$ chsh -s /usr/bin/zsh
$ zsh

下载插件

1.自动补全插件,可以记录用过的命令并给出建议

1
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

2.语法高亮插件

1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

下载主题

这里使用的主题是powerlevel10k,详细信息见romkatv/powerlevel10k

首先需要安装该主题的推荐字体 :MesloLGS ,安装后需要在终端软件中修改字体设置为 MesloLGS NF 才能保证各种符号正确显示。字体备份链接

下载 powerlevel10k 主题:

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

修改配置文件并应用 修改 .zshrc 配置文件来启用刚刚 clone 的插件和主题

1
vim ~/.zshrc

参考以下内容进行修改

1
2
3
4
5
6
7
8
 #更改ZSH_THEME
 ZSH_THEME="powerlevel10k/powerlevel10k"

 #更改plugins
 plugins=(git
       zsh-autosuggestions
       zsh-syntax-highlighting
     )

输入以下内容使配置生效:

1
source ~/.zshrc

之后会进入 powerlevel10k 主题的交互式配置界面,按个人喜好进行配置即可。之后需要修改 powerlevel10k 的主题配置时,可以执行 $ p10k configure 随时更改。

至此 Oh My Zsh 就已配置完成,之后可以按需添加更多插件获得更好的终端操作体验。

在公用服务器上使用时不应修改默认 shell 为 zsh,避免影响他人使用。若要坚持使用 zsh,我只想到两种方法:

  1. 登录自己账户后输入 zsh 继续使用
  2. 将 zsh 补充至 .bashrc 文件尾部 ,在 SSH 登录时自动进入 zsh
1
echo zsh >> .bashrc

缺点是退出时需要输入两次 CTRL+D 才能返回最开始的终端。

在 WSL2 中,若是进入 windows 目录,会发现文件夹的背景色难以看清。按下面 issue 中的建议,将以下 LS_COLORS 环境变量加入 .zshrc 并应用即可: How to change colors? · Issue #805 · romkatv/powerlevel10k

1
2
#Custom folder color optimize for wsl2
export LS_COLORS='rs=0:no=00:mi=00:mh=00:ln=01;36:or=01;31:di=01;34:ow=04;01;34:st=34:tw=04;34:pi=01;33:so=01;33:do=01;33:bd=01;33:cd=01;33:su=01;35:sg=01;35:ca=01;35:ex=01;32:'