zsh-autosuggestions

zsh-autosuggestions 可用于提示补全建议,当输入字符,默认情况下,它基于我们的历史命令自动提供输入建议。

  • 安装
1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
  • 配置
  1. 编辑.zshrc文件:
1
vim ~/.zshrc
  1. 找到plugins这一行将命令加入括号中,如果启用的插件很多可以写成下面的形式方便管理:
1
2
3
4
plugins=(
git
zsh-autosuggestions
)
  1. 使配置生效:
1
source ~/.zshrc
  • 另外,如果希望 zsh-autosuggestions 不仅支持 history,也支持自动补全的建议提示,即原来那些要输入 tab 才能出现的内容,如子命令、命令选项、目录文件等提示,也能在提示建议的范围中。我们只需增加 completeion 这个配置项。
1
2
echo 'ZSH_AUTOSUGGEST_STRATEGY=(history completion)' >> ~/.zshrc
source ~/.zshrc

zsh-syntax-highlighting

zsh-syntax-highlighting 是 zsh 的语法高亮插件,如果输入的命令不存在,或者输入 shell 语法不正确,将会自动以红色表示。它的优点就是,当我们在终端输入时可以实时反馈。

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

配置与上面一样,不多赘述。

1
2
3
4
5
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
)

eza

eza 是一款可用于替换系统默认 ls 的命令,在平时工作中 ls 几乎使用最多的命令,而 eza 在支持 ls 的基本能力基础上,提供了更丰富的特性。

1
apt install exa

可通过别名将默认 ls 和 tree 命令替换为 eza,如下是一些常见的别名设置:

1
2
3
4
5
6
7
8
9
10
11
# 默认显示 icons: 
alias ls="eza --icons"
# 显示文件目录详情
alias ll="eza --icons --long --header"
# 显示全部文件目录,包括隐藏文件
alias la="eza --icons --long --header --all"
# 显示详情的同时,附带 git 状态信息
alias lg="eza --icons --long --header --all --git"

# 替换 tree 命令
alias tree="eza --tree --icons"

zoxide

zoxide 是一款受到 z 和 autojump 启发而来的命令,它会记录访问过的目录,通过搜索找到最匹配你目标的目标。从而实现以最少按键就能实现目录跳转。

1
2
3
apt install zoxide
echo 'eval "$(zoxide init zsh --cmd cd)"' >> ~/.zshrc
source ~/.zshrc

bat

bat 是一款支持语法高亮、git 集成的用于替换类 Unix 系统下快速查看文件内容的命令,功能与 cat 相似的命令。

1
apt install bat

⚠️在 Ubuntu/Debian 上,软件包里 bat 这个名字和 Basic Assembly Template (bat) 冲突了,所以官方把命令名字改成了 batcat。需要给所有用户加一个软链接,让 batcat 变回 bat:

1
sudo ln -s /usr/bin/batcat /usr/local/bin/bat

这样以后所有用户直接敲 bat 就能用了。