分享一个自己平时用的 zsh 配置文件(.zshrc)

虽然一般用 zsh 的人都会直接用 oh-my-zsh 来进行配置,但我还是更喜欢自己写的 .zshrc,因为感觉 oh-my-zsh 里面好多功能太高级了,我一个基础用户用不上。用自己写的 .zshrc,感觉 zsh 的运行速度会更快一些,或许是因为没有启用那么多杂七杂八的功能。

配置文件

# Created by clover whth the help of Linux lovers all over the world for zhs 5.8.1

# 彩色输出
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi
alias ip='ip -c'

# 自动补全
autoload -Uz compinit
compinit
zstyle ':completion:*' menu yes=long select

# Disable prompt disappearing on multi-lines
export COMPLETION_WAITING_DOTS="false"

# 历史记录
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
setopt appendhistory

# 缩写
alias la='ls -A'
alias ll='ls -lh'
alias ping="ping -c 4 "
alias cls='clear'
alias BBa="BBDown --audio-only --skip-cover"
alias rm="rm -i"
alias cp="cp -i"
alias mv="mv -i"
alias shizuku-enable="adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh"

# 插件
export TERM=xterm-256color
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source /etc/zsh_command_not_found

# 命令提示符
autoload -U colors && colors
PROMPT="%(?::%B[%?] %b)%B%{$fg[green]%}%#%{$reset_color%}%b %B%{$fg[blue]%}%.%{$reset_color%}%b "

解释说明

  • 颜色输出:就是启用 lsgrepip 命令的彩色输出选项。
  • 自动补全:启用 zsh 的自动补全功能,输入一部分命令或文件名后,按 Tab,会弹出一个菜单,按上下方向键移动光标,即可补全命令。
  • 历史记录:在用户的主文件夹下创建一个 .histfile 文件,用于存放历史记录,可记录 1000 条。
  • 缩写:语法就是 alias 别名="对应的命令"
    • cls 是模仿 DOS 中的清屏指令;
    • ping 则模仿了 WIndows 中的设置,默认 ping 4 次;
    • cpmvrm 则是启用了交互模式,删除文件前需要确认、操作会覆盖文件时也需要先确认,防止误操作造成数据损失;
    • la 用于显示所有文件(包括隐藏文件),ll 则是列出文件的详细信息,并用 MB、GB 等单位显示文件大小,更加直观。
    • BBa 是调用 BBDown 的音频下载模式,输入 BBa av号/bv号 后,只下载该 b 站视频的音轨。我喜欢从 b 站找音乐资源,所以搞了个这东西;
    • shizuku-enable 是通过 adb 启动手机上的 shizuku。
  • 插件:
    • export TERM=xterm-256color 可以解决部分终端程序在 tmux 下无法显示 256 色的问题。
    • 该节第 2 行是调用自动提示插件,当你输入命令时,系统会根据历史记录显示提示,按 即可补全命令。需要先安装 zsh-autosuggestions 软件包。
    • 该节第 3 行是调用错误提示插件,如果你输入的命令系统无法找到,则会显示一条提示,告诉你这个命令可能在哪个软件包里面。
  • 命令提示符:
    • 以普通用户身份运行时,显示的是 % 当前目录名 ,比如在 /usr/share/ 中,会显示 % share % 用绿色显示,目录名用蓝色显示。
    • 以 root 身份运行时,% 会变成 #
    • 如果上一条命令的返回代码不是 0,则会在提示符前面显示返回代码。比如上一条命令返回了错误代码 2,则命令提示符会变成 [2] % ~

使用方法

把上面的配置文件保持成 .zshrc,放到用户的主文件夹中即可。

5 Likes

感谢分享,正好需要

1 Like

推荐 starship,开箱即用

1 Like

一般都是让tmoe帮我配的,很方便

1 Like

不建议这样用,如果你养成习惯了,换一台电脑运行 rm 直接就删除文件了。推荐用 trash-cli。

3 Likes

非常感谢您的提醒!不过对我而言,恰恰相反,正因为这套配置文件是我自己写的,我始终牢记自己开了哪些参数。

而且我的使用习惯是:只有删除确定不需要的文件,才会用 rm。平时的话,都是直接拖到回收站里。

trash 这个命令我也用过,确实是非常好用,之前看到很多文章都推荐用 trash 代替 rm,以防误删文件。