Nov 27, 2021

使用 ohmyzsh 提升终端使用体验

安装 ohmyzsh

在安装 ohmyzsh 之前,需要先安装 zsh。注意:MacOS Big Sur 之后的默认终端已经是 zsh 了,无须再次安装。

# 举例,在 Ubuntu 下安装 zsh sudo apt install -y zsh # 修改默认终端为 zsh chsh -s /bin/zsh # 安装 ohmyzsh sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

注意:raw.github.com 在大陆是被墙的,因此这个脚本很有可能下载不下来。你可以先给终端翻墙,或者先手动打开 https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh 这个地址,再把里面的内容保存到一个本地文件,再尝试安装。网络问题还是挺玄学的,如果安装失败,建议多重试几次。

vim install-ohmyzsh.sh # 复制网址中的全部内容后保存 sh ./install-ohmyzsh.sh

主题

ohmyzsh 拥有千奇百怪的主题。你可以在 ~/.zshrcZSH_THEME="" 这一行设置你喜欢的主题。

Untitled.png

你可以在 ohmyzsh wiki 的 themes 页面浏览全部自带主题。除此之外,Github 上还有非常多未被官方收录的民间主题,有一些确实花哨得夸张。。。

💡 我也试用过千万主题,最终还是回到了默认的 robbyrussell

如果你是个喜欢寻求刺激的人,可以尝试设置 ZSH_THEME="random",每次打开终端都是未知的体验(笑。

插件

自带插件 & 启用插件

ohmyzsh 自带了很多插件,你可以在 ohmyzsh wiki 的 plugins 页面浏览全部,文件夹名字就是插件名字,你可以在 .zshrc 中直接启用。

如何启用插件?打开 ~/.zshrc,找到 plugins=(git) 这一行,括号内填入插件名称并以空格分隔,保存文件后执行 source ~/.zshrc 即可看到效果。

Untitled.png

z

z 是一个 ohmyzsh 自带的插件,它可以记录你去过的所有文件夹,并提供快速跳转。使用时并不需要输入完整的路径,z 会自动进行联想,而且准确度相当高。

Untitled.png

你可以直接在 ~/.zshrc 中启用该插件:

plugins=(z)

autojump

autojump 是一个与 z 类似的一个自动跳转工具,但依赖 python,且需要通过 brew 额外进行安装。我个人觉得 z 就已经够用了。如果你不介意系统上多一个 python 的依赖,可以考虑使用这个插件。

brew install autojump

安装完毕后,在 ~/.zshrc 中开启该插件:

plugins=(autojump)

zsh-autosuggestions

https://github.com/zsh-users/zsh-autosuggestions 插件可以提供一些自动补全建议。

Untitled.png

使用 oh-my-zsh 插件方式安装,并在 ~/.zshrc 中启用该插件:

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

zsh-syntax-highlighting

https://github.com/zsh-users/zsh-syntax-highlighting 插件可以让命令高亮显示,如果出现语法错误会直接显示为红色。

Untitled.png

使用 oh-my-zsh 插件方式安装,并在 ~/.zshrc 中启用该插件:

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

themes

themes 是一个 oh-my-zsh 内建插件,用来快速切换 oh-my-zsh 主题。在 ~/.zshrc 中启用即可。

plugins=(themes)

thefuck

虽然 thefuck 并不属于 ohmyzsh 生态,但我觉得还是很有必要安利一波的。

https://github.com/nvbn/thefuck 是一个可以帮你快速纠错命令的工具,当你打错命令了,直接敲一个 fuck,它就会帮你快速纠正。

Untitled.png

# macos 下安装 brew install thefuck # ubuntu 下安装 sudo apt install -y thefuck

~/.zshrc 中启用:

eval $(thefuck --alias)