前言
在许久之前自己手写了一个 dotfiles 的管理工具,但在开发的过程中还是遇到了不少问题,最后还是只能在自己的机器上复现,在其他人的机器上还不如直接复制粘贴来的方便。最近发现了这个 chezmoi 工具,它可以很方便的管理你的 dotfiles,解决了跨平台与兼容性、敏感数据安全、多设备配置同步与管理和模板与自动化问题。这里来推广一下并给出一份入门级使用教程。
注意:如果你想使用这个工具,请一定提前备份已有的 dotfiles,以免因为刚上手时不清楚命令的具体运作方式导致备份丢失。
chezmoi 会在你自己的机器上新建一个 ~/.local/share/chezmoi
目录,你可以往这个目录里手动添加你需要它管理的配置文件,然后 chezmoi 会将你原来的配置文件复制并改名为以 dot_xxx
形式的文件到这个新目录下,接着就可以通过 github 平台来管理这个新目录。除了 dot_xxx
形式的文件外,还可以创建 run_xxx
等形式的文件来存储跨平台用的脚本。
快速上手
初始化
1 | sudo pacman -S chezmoi # archlinux 安装 chezmoi |
添加命令
更完整的添加命令:
1 | chezmoi add .zshrc # 添加文件 |
~/.config/chezmoi/chezmoi.toml
使用chezmoi edit-config
命令可以自动打开并编辑 chezmoi 的配置文件
我习惯所有修改配置文件的命令都是该程序名后面加个c
alias chezmoic="chezmoi edit-config"
更换编辑器
更改 chezmoi 默认编辑器为 nvim:
在 ~/.config/chezmoi/chezmoi.toml
中添加以下内容:
1 | [editor] |
更改配置文件并应用
1 | chezmoi edit ~/.zshrc # 日后的更改都是通过修改这个新目录下的配置文件来实现的 |
为了便于平常更改,我在 ~/.zshrc
中添加了以下内容:
1 | alias zshc="chezmoi edit ~/.zshrc --apply && source ~/.zshrc" |
查看更改
比较本地的两个配置文件之间的差异
1 | chezmoi diff |
~/.config/chezmoi/chezmoi.toml
配置文件
这个配置文件可以配置chezmoi自身的一些行为,这里提供我的一份简单配置:
1 | [data] |
值得注意的是,chezmoi 不允许添加自己的配置文件管理,也就是说这份 toml 文件是无法 chezmoi add
的。
模板
chezmoi 解决在多台机器上管理配置文件的方案是使用模板。模板里会留有一些变量,在不同机器上会根据机器的自身特性来动态替换这些变量。
以添加 ~/.gitconfig
为例
1 | chezmoi data | jq # 查看当前机器的模板变量 |
在其他设备上初始化时,可以使用如下命令:
1 | chezmoi init https://github.com/kingpoem/dotconfig.git |
上传加密文件
1 | sudo pacman -S age # archlinux 安装 age 加密工具 |