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 Font或Nerd 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.sh
,Nerd 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。