Zsh(Z shell)是一个Unix shell,旨在成为流行的Bash shell的一个交互式和强大的替代品。它是一个开源的shell,可用于大多数基于Unix的操作系统,包括Linux和macOS,已成为macOS默认的shell。

Table of Contents

安装Zsh

在Ubuntu上安装,运行命令:

sudo apt install zsh

验证安装

zsh --version

设置为默认shell

chsh -s $(which zsh)

退出并重新登录以使配置生效。运行 echo $SHELL 应返回 /usr/bin/zsh

安装oh-my-zsh

Oh My Zsh是一个开源的工具,用于管理zsh配置,https://github.com/ohmyzsh/ohmyzsh

安装:

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

注意,任何以前的.zshrc将被重命名为 .zshrc.pre-oh-my-zsh 。安装后,你可以将你想保留的配置移到新的 .zshrc中。

选择主题

通过oh-my-zsh可以为终端配置漂亮的theme,编辑~/.zshrc文件,找到 ZSH_THEME,修改为想要的主题,预览主题样式,如选择"agnoster",修改配置并保存:

ZSH_THEME="agnoster"

安装字体

许多主题需要安装Powerline FontNerd Font,以便正确呈现。没有它们,这些主题会呈现出奇怪的提示符号。

安装Powerline Font

ubuntu环境下:

sudo apt install fonts-powerline

Mac环境下:

# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts

安装Nerd Font

在Ubuntu中,以下代码保存为get_font.sh,然后在终端运行bash get_font.shNerd Font字体下载网站

echo "[-] Download fonts [-]"
echo "https://github.com/ryanoasis/nerd-fonts/releases/download/v2.3.3/Hack.zip"
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v2.3.3/Hack.zip
unzip Hack.zip -d ~/.fonts
fc-cache -fv
echo "done!"

在macOS上安装Nerd Font:(完整的安装列表参考这里

# Nerd Fonts for your IDE
# https://www.nerdfonts.com/font-downloads

brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-font
brew install --cask font-noto-nerd-font
brew install --cask font-fira-code-nerd-font
brew install --cask font-fira-mono-nerd-font
brew install --cask font-dejavu-sans-mono-nerd-font
brew install --cask font-droid-sans-mono-nerd-font

隐藏命令行的用户名和主机名显示,修改主题的配置文件,

vi ~/.oh-my-zsh/themes/agnoster.zsh-theme

注释掉prompt_context这行:

build_prompt() {
  RETVAL=$?
  prompt_status
  prompt_virtualenv
  prompt_aws
  # prompt_context
  prompt_dir
  prompt_git
  prompt_bzr
  prompt_hg
  prompt_end
}

在VS Code上配置字体

经过上述步骤,使用VS Code的时候,也可以使用zsh,如果已经按照之前的步骤安装了Hack字体,直接在VS Code中使用,安装完的字体名称可以在Terminal的Preference字体选择里面找到。

比如在Ubuntu中:

  "editor.fontFamily": "'Hack NF', 'Noto Mono', 'Droid Sans Mono', 'monospace', monospace",
  "terminal.integrated.fontFamily": "Hack NFM"

在macOS中:

{
    "editor.fontFamily": "'NotoMono Nerd Font Mono', 'Droid Sans Mono', 'monospace', monospace",
    "terminal.integrated.fontFamily": "Hack Nerd Font Mono"
}

{
    "editor.fontFamily": "'NotoMono Nerd Font Mono', 'Droid Sans Mono', 'monospace', monospace",
    "terminal.integrated.fontFamily": "NotoMono Nerd Font Mono"
}

如果安装了Powerline字体,VS Code终端提示显示却有点问题,此时Powerline字体需要一点额外设置(安装Powerline字体的补丁版本),前面的 “快速安装”(sudo apt-get install fonts-powerline)在这种情况下不起作用。需要直接从https://github.com/powerline/fonts,安装你想要的字体的补丁版本,参考StackOverflow