分享我的Zsh设置:Oh My Zsh + Powerlevel10k + 插件 = ❤️

这是我第一次写技术性博客,来分享自己的知识和经验。今天,我想分享我的个人Zsh设置,包括Oh My Zsh + Powerlevel10k + 一些常用插件。这种设置让我的终端体验非常愉悦,我希望你能同我一样有着愉悦的终端体验。😊

注意
此文章是从本站英文版原文通过GPT-4 Turbo翻译并适当修改而来,可能会出现语言不自然等Bug,请予以谅解。

本博客文章基于以下资源编写:

  1. Oh My Zsh
  2. Powerlevel10k

欢迎查看这些资源以获取更多详细信息。

本指南适用于 Linux(包括 WSL2)、MacOS 和 Windows Git Bash

Windows Powershell 怎么样?
查看oh-my-posh以在Powershell中实现类似的设置。然而,本文不会涉及此内容。

Powerlevel10k 最适合使用其专用字体 Meslo Nerd Font。因此,你首先需要在你的操作系统上安装它。然后,对于你使用的每一个shell/终端程序(比如 VSCode、Intellij、Windows Terminal、iTerm2 等等),你需要配置它使用这些自定义字体。

我知道这是一项相当繁琐的工作。幸运的是,这里有来自Powerlevel10k官方GitHub仓库的指南。该指南提供了如何在大多数流行的终端中配置终端以使用Meslo Nerd Font的说明。

Oh My Zsh 是一个基于Zsh之上的开源、社区驱动的框架。安装过程还需要在你的操作系统上安装其他依赖项。因此,请确保你已经安装了以下依赖项:

  • zsh(Z shell)
  • git(版本控制系统)
  • curlwget(用于下载安装脚本)

例如,在基于Debian的系统上,你可以使用以下命令安装它们:

bash

sudo apt update
sudo apt install curl git zsh -y

对于Windows Git Bash,安装Zsh可能会有挑战。你可以查看Dominik Rys的这篇文章了解如何在Windows Git Bash中安装Zsh。

此时,你应该已经安装了所有必要的依赖项。现在,运行以下命令来安装Oh My Zsh、Powerlevel10k和一些常用插件。

bash

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

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/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/Pilaton/OhMyZsh-full-autoupdate ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/ohmyzsh-full-autoupdate

上述脚本执行以下操作:

  1. 安装Oh My Zsh,并取消询问用户是否将默认shell转换为Zsh的interactive shell。我们稍后将手动转换默认shell为Zsh。
  2. 安装Powerlevel10k主题。
  3. 安装zsh-syntax-highlighting插件。
    • 该插件为shell提供语法高亮。这样,你可以在按下回车键之前意识到是否拼错了命令。
  4. 安装zsh-autosuggestions插件。
    • 该插件根据history和completion来补全你的命令,这可以大大节省你在做重复任务和命令上的时间。
  5. 安装OhMyZsh-full-autoupdate插件。
    • 由于所有内容都是使用git安装的,因此保持它们的更新至关重要。该插件通过在后台运行git pull来自动更新Powerlevel10k和Oh My Zsh插件。更新频率取决于Oh My Zsh的设置,默认情况下应该是每13天一次。

就像Bash使用.bashrc一样,Zsh使用.zshrc作为配置文件。

默认情况下,Oh My Zsh将创建一个带有默认主题和单个插件git.zshrc文件。要启用我们刚刚安装的Powerlevel10k和插件,我们需要修改.zshrc文件。

用你喜欢的文本编辑器(如nano)打开它,并更改以下:

  1. 更改主题,从ZSH_THEME="robbyrussell"更改为ZSH_THEME="powerlevel10k/powerlevel10k"
  2. plugins数组中添加更多插件,从plugins=(git)更改为:

    bash

    plugins=(git aliases common-aliases zsh-syntax-highlighting zsh-autosuggestions ohmyzsh-full-autoupdate)

以上可以通过运行两个sed命令来实现:

bash

sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="powerlevel10k\/powerlevel10k"/' ~/.zshrc
sed -i 's/plugins=(git)/plugins=(git aliases common-aliases zsh-syntax-highlighting zsh-autosuggestions ohmyzsh-full-autoupdate)/' ~/.zshrc

如果你正在设置新系统,请跳过此步骤。

如果你正在将现有系统从Bash迁移到Zsh,你可能需要花些时间将你的.bashrc.profile分别迁移到.zshrc.zprofile

不幸的是,没有办法自动化迁移过程。我也强烈不建议你在.bashrc.profile文件的末尾执行Zsh,因为它可能会使其他脚本、应用程序或IDE出bug。

然而,在迁移过程中一些值得考虑的通用事项包括:

  • 由第三方包管理器(如Homebrew、SDKMan等)添加到你的.bashrc.profile的脚本。
  • 自定义环境变量。
  • 自定义PATH
  • 自定义alias。
    • 可以考虑替换使用Oh My Zsh中已有的插件。查看common-aliases插件以及官方文档中以获得更多信息。
    • 例如,如果你使用Docker,考虑将dockerdocker-compose添加到.zshrcplugins数组中。

最后,通过运行以下命令将Zsh设置为默认shell:

bash

chsh -s $(which zsh)

对于Windows Git Bash,据我所知,没有官方方法将另一个shell设置为默认shell。然而,你可以在每次打开终端时手动运行zsh。或者将此脚本追加到你的.bashrc文件末尾,以便在你打开终端时自动运行Zsh(是的,这与我在第5步中所说的相反,但这是我们目前能做的最好的 😕):

bash

# 最后,切换到zsh
if [[ -t 1 && -x /usr/bin/zsh ]]; then
    export SHELL=$(which zsh)
    if [[ -o login ]]
    then
        exec zsh -l
    else
        exec zsh
    fi
fi

如果你有更好的解决方案将Zsh设置为Windows Git Bash的默认shell,欢迎在下方评论区留言。

在将Zsh设置为默认shell之后,启动新的终端会话将立即带你进入Powerlevel10k配置向导。你也可以随时运行p10k configure再次启动向导。向导将引导你根据你自己的喜好配置Powerlevel10k。

Powerlevel10k配置向导的屏幕录像(来自官方GitHub仓库)

Powerlevel10k配置向导的屏幕录像(来自官方GitHub仓库)

完成向导可能会比较耗时。所以在这里,我准备了一段snippet,你可以使用它来快速配置Powerlevel10k,使其与上面GIF中显示的样式相似。只需在你刚开始运行p10k configure时复制并粘贴它即可:

bash

y
y
y
y
3
1
2
1
1
1
2
2
3 # 如果你想使用本博文封面中显示的样式,请将此项更改为1
2
2
2
1
y
1
y

就是这样!你已经成功地设置了Oh My Zsh与Powerlevel10k和一些常用插件。现在你可以享受更高效、更愉快的终端体验了。😁

有任何问题或建议?欢迎在下方评论区留言。