轻便ZSH配置(无Oh-my-zsh)

轻便ZSH配置(无Oh-my-zsh)

本教程基于Ubuntu20.04

目前各大论坛上关于zsh的资料,无论是在CentOS还是在Ubuntu下,大都用到Oh My Zsh这一框架。

但是Oh My Zsh本身十分庞大,对于日常开发来说可能很多功能都用不上,给人以一种很冗杂的感觉,甚至还会影响到shell的运行速度。

因此,笔者自行配置了zsh,尽可能在保证功能完整的条件下保持轻便简洁。先上一下最终效果。

演示界面

注意,以下操作均需要重启终端或手动source才能生效。

安装zsh

下载并安装zsh。

sudo apt update
sudo apt install zsh

将默认shell设置为zsh。

chsh -s /usr/bin/zsh 

弹出的设置界面选默认的(0)就好。

安装插件

  • zsh-autosuggestions:命令自动补全插件;
  • zsh-syntax-highlighting:命令行高亮插件;
  • zsh-theme-powerlevel9k:命令行提示符插件。
sudo apt install zsh-autosuggestions
sudo apt install zsh-syntax-highlighting
sudo apt install zsh-theme-powerlevel9k

启用插件,打开~/.zshrc,添加以下内容。

source /usr/share/powerlevel9k/powerlevel9k.zsh-theme
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

个性化定制

设置命令行显示

~/.zshrc中添加以下内容:

## powerlevel9k setting
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status ram load)
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir ip)
POWERLEVEL9K_PROMPT_ON_NEWLINE=true

RIGHT_PROMPT_ELEMENTS设置的是右侧的提示内容,我这里的是上一条命令执行情况 剩余内存 系统负载
LEFT_PROMPT_ELEMENTS设置的是左侧的提示内容,我这里的是用户名与主机名 当前目录 ip地址

可选参数如下,节选自https://zhuanlan.zhihu.com/p/125522215

  • background_jobs - 后台作业的指示器
  • battery - 电池状态
  • context - 您的用户名和主机,基于 $USER 和 SSH 状态的条件化
  • date - 系统日期
  • dir - 你当前的工作目录
  • dir_writable - 如果您对当前文件夹没有写权限,则显示锁定图标
  • disk_usage - 当前分区的磁盘使用情况
  • history - 当前行的命令号
  • host - 您当前的主机名
  • ip - 显示当前 IP 地址
  • vpn_ip - 显示当前的 VPN 地址
  • public_ip - 显示你的公共IP地址
  • load - 机器的平均负载
  • os_icon - 操作系统图标
  • ram - 显示空闲内存
  • root_indicator - 指示用户是否具有超级用户状态
  • status - 前一个命令的返回代码
  • swap - 打印当前交换文件大小
  • time - 系统时间
  • user - 你现在的用户名
  • vi_mode - 提示符的 Vi 编辑模式 (正常 | 插入)
  • ssh - 指示您是否处于 SSH 会话中

PROMPT_ON_NEWLINE设置的是是否开启换行输入,开启后用户输入光标将显示在提示内容的下一行。

更多关于POWERLEVEL9K主题的搭配方案,可参考以下示例.

允许使用通配符

默认情况下 zsh 是不支持通配符(*)匹配的,若要允许zsh使用通配符,请添加以下内容到~/.zshrc中:

set nonomatch

使用fzf

fzf (fuzzy finder)插件可以方便我们查找历史命令,并且大大减少原本ctrl+R的不便利程度。

安装只须在终端输入:

sudo apt install fzf

并将以下内容添加到~/.zshrc中即可。

source /usr/share/doc/fzf/examples/completion.zsh
source /usr/share/doc/fzf/examples/key-bindings.zsh

常用方法为输入指令的某一部分,然后 ctrl+R 即可在历史指令中选择想调用的指令,详情见演示中视频的01:05

posted @ 2022-07-05 21:56  PIDA  阅读(850)  评论(0编辑  收藏  举报