Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

设置 oh-my-zsh 有点久了,但没有写相关博客文章. 有赖于使用的命令自动补全插件,比起默认的 bash,现在我的 VPS 使用更加方便了. 内容有:安装 oh-my-zsh, powerlevel10k, zsh-syntax-highlighting,zsh-autosuggestions, 开启 instant prompt.

在朋友的推荐下,我也试了 fish shell,也把 fish shell 的设置写下来.

各个发行版的系统默认 shell 都是 bash,bash 只有一个颜色,而且没有命令补全功能. oh-my-zsh 和 fish 安装其中一个就好了.

选择一:oh-my-zsh 和 powerlevel10k

按照 oh-my-zsh github 仓库的安装步骤,需要先安装 zsh, curl 或者 wget, git. 除了 zsh, 别的我的 VPS 都有了. 安装 zsh,并验证安装完成

安装 zsh

sudo apt install zsh
zsh --version

设置 zsh 为默认 shell

chsh -s $(which zsh)

如果设置有问题,可以采取设置默认 shell里提到的替代方法

测试默认 shell 是否修改完成

 echo $SHELL
 $SHELL --version

输出分别类似 /bin/zshzsh 5.8,就没有问题

如果有问题,在~/.bashrc 的最后添加一行 exec zsh

安装 oh-my-zsh

wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
sh install.sh

安装 powerlevel10k

下载 zsh 主题 powerlevel10k

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

主题和插件的增加修改,都在这里.

nano ~/.zshrc

设置主题

ZSH_THEME="powerlevel10k/powerlevel10k"

安装 zsh-autosuggestions

oh-my-zsh 自带有命令自动补全,但 zsh-autosuggestions 插件根据历史输入命令的记录建议补全,然后按 → 键即可补全,所以我还另外安装了 zsh-autosuggestions.

下载 zsh-autosuggestions

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

打开 ~/.zshrc, 添加 zsh-autosuggestions 插件

plugins=( 
    # 其它插件
    zsh-autosuggestions 
)

安装 zsh-syntax-highlighting

Linux Zsh 使用 oh-my-zsh 打造高效便捷的 shell 环境 一文,提到了 zsh-syntax-highlighting 插件. zsh-syntax-highlighting 会在语法错误时,显示红色,提供语法检查.

下载 zsh-syntax-highlighting

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

打开 ~/.zshrc, 添加插件

plugins=( 
    # 其它插件
    zsh-autosuggestions 
    zsh-syntax-highlighting
)

开启 instant prompt

如果插件较多,zsh 加载会很慢. 而 instant prompt 功能开启后,将不必等待 zsh 加载,就可以使用 shell. 打开 ~/.zshrc,在最上面添加以下内容:

# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

完成 instant prompt 开启.

选择二:fish-shell

安装 fish

sudo apt install fish
fish              # 这一句是查看 fish shell 的效果

设置 fish 为默认 shell

如果你为 root 用户安装的 fish,照着 fish tutorial 就好:

echo /usr/local/bin/fish | sudo tee -a /etc/shells
chsh -s /usr/local/bin/fish

如果你为别的用户安装 fish:

echo /bin/fish | sudo tee -a /etc/shells
sudo chsh -s /bin/fish

测试默认 shell 是否修改完成

 echo $SHELL
 $SHELL --version

输出分别类似 /usr/bin/fishfish, version 3.5.1,就没有问题

参考内容

  1. Install and set up zsh as default
  2. Set zsh as the default shell in your terminal
  3. Oh My Zsh | Basic Installation
  4. Powerlevel10k | Installation#Oh My Zsh
  5. zsh-autosuggestions | INSTALL.md#oh-my-zsh
  6. Linux Zsh 使用 oh-my-zsh 打造高效便捷的 shell 环境
  7. fish tutorial

评论