SHELL和插件

选取一个合适的shell

可选的shell很多,这里列出常选的:

  • zsh
  • fish
  • bash

bash

这是一个老牌的shell,大部分的linux系统自带可以说具有最广泛的兼容
同样与其他的shell对比样式和功能相对较弱的

zsh

zsh我用的比较久,这也是大部分的人比较喜爱的shell了,有活跃的社区和教程
有很多好用的插件

必备

  • zsh-autosuggestons: 自动补全插件
  • zsh-syntax-highlighting: 命令高亮

zinit

zsh目前比较火的插件管理器,Turbo mode延时加载使得你的zsh可以达到最快的启动速度,对比安装了许多插件的zsh可以做到10倍的提升

Install zinit

自动安装
1
sh -c "$(curl -fsSL https://raw.githubusercontent.com/zdharma/zinit/master/doc/install.sh)"
手动安装
  1. 先把源代码克隆下来
    createDir:~/.config/zinit/bin
    1
    git clone https://github.com/zdharma/zinit.git ~/.config/.zinit/bin
  2. ~/.zshrc 顶端添加 zinit 的路径
    source ~/.config/zinit/bin
  3. 重新启动终端,用 zinit self-update 进行自编译
zinit 加载插件

加载插件有几种不同的模式

  • zinit snippet: 片段式,可以加载一个插件中的某一个脚本或者代码段
  • zinit load: 加载整个repo 或者单个脚本
  • zinit light: load 的轻量化加载版本

zinit 常见的插件安装

CLI 命令补全高亮
1
2
3
4
5
6
7
zinit wait lucid for \
atinit"ZINIT[COMPINIT_OPTS]=-C; zicompinit; zicdreplay" \
zsh-users/zsh-syntax-highlighting\
blockf \
zsh-users/zsh-completions \
atload"!_zsh_autosuggest_start" \
zsh-users/zsh-autosuggestions
zinit + oh my zsh
zinit + powerlevel10k

zinit ice depth=1; zinit light romkatv/powerlevel10k

powerlevel10k install

powerlevel10k 是一个zsh主题,快速,美观,强大
这里是AUR中官方的包

Install powerlevel10k
1
2
yay -S --noconfirm zsh-theme-powerlevel10k-git
echo 'source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc

Unintall powerlevel10k

将一下配置从 .zshrc 配置文件中移除

warning in ~/.zshrc
1
2
3
4
5
6
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"

[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
fi

about instant prompt

即使提示:
p10k 可以加速你的zsh启动,当你的zsh装了很多插件的时候,p10k 将会自动解决这些加载缓慢的情况
如果你开启了即使提示,将会在每一次zsh configure initialization 的时候得到一些控制台输出的信息

  • 建议开启这个优化功能,但是如果想关闭每次初始化的提示可以在配置文件下修改如下选项
    ~/.p10k.zshTypeset -g POWERLEVEL9K_INSTANT_PROMPT=quiet 这将会关闭提示,但是p10k仍将在后台优化你的zsh启动时间

oh my zsh install

fish

fish我用过一段时间,开箱即用,比较热门的功能全部自带了

fisher

oh my fish

Plugins

Starship

repo: starship/starship

  • 快: 很快 —— 真的真的非常快! rocket
  • 定制化: 可定制各种各样的提示符。
  • 通用: 适用于任何 Shell、任何操作系统。
  • 智能: 一目了然地显示相关信息。
  • 功能丰富: 支持所有你喜欢的工具。
  • 易用: 安装快速 —— 几分钟就可上手。

starship config

创建配置文件

1
mkdir -p ~/.config && touch ~/.config/starship.toml

zsh-vi-mode (ZVM)

repo: jeffreytse/zsh-vi-mode

安装

  1. 使用zinit 安装 ZVM

用这个插件唯一蛋疼的地方就是光标显示了,在shell中,特别是开了多个shell的情况下你很难分出切换到了哪个窗口,所以我建议调整两个选项

`~/.zinit/plugins/jeffreytse---zsh-vi-mode`
1
2
ZVM_CURSOR_STYLE_ENABLED=false # 关闭默认光标样式,你也可以修改为其他样式
ZVM_VI_INSERT_ESCAPE_BINDKEY=jk # 启用jk快捷切换模式