我是如何让我的 Zsh 像丝般顺滑的

引言 我用 Zsh 到现在大约三年了,从抛弃 Oh My Zsh 自行配置开始也有大约两年了,零零散散积攒了不少我觉得值得分享的东西,因此有了这篇 blog。另外,考虑到我的朋友大多对 Zsh 的使用比较轻度,写 Bash 居多,这篇 blog 也会顺便讲解一些零碎的 Zsh 的小知识。 我的配置文件全都放在 QuarticCat/dotfiles,有兴趣的可以去翻阅一下。值得一提的是,管理这个 repo 所用的 dotfile manager 也是我用 Zsh 写的。 尽管在 repo 里我把所有 Zsh 的配置放到了一个文件夹里,但它们在我系统中是分开的,结构大致上是这样: - ~ - .zshenv - $XDG_CONFIG_HOME/zsh - all-other-files 因为文件太多,全放在 home 目录会很乱,因此我遵循 XDG Base Directory 把大部分文件转移到了 $XDG_CONFIG_HOME,只有 .zshenv 必须得放在 home 目录。下面我就一个一个文件介绍一下我都配置了些什么。 .zshenv 关于 Zsh 几个配置文件的区别可以看这篇 blog 。在这里我主要放一些环境变量,这样它们对 DE 启动的 GUI 程序也生效(似乎是因为 SDDM 会自动 source 这个文件)。其中很多变量也可以用 ~/.pam_environment、~/.xsession 等配置文件管理,但它们都都没有 Zsh 写得舒服,而且合在一起修改也比较方便(当然它们在效果上有轻微的差异)。 回到文件内容。首先是一个自己写的函数,主要是把 source 和 eval 简单包了一层,在文件不存在或指令出错的时候直接跳过。这是因为很多软件需要在 shell 里面挂 hook,但有时我需要把我的 shell 配置快速移植到远程的开发机上,这些机子没有相应的软件就会报错。...

2022-05-30 · QuarticCat