吴旭华 发表于 2024-5-18 15:28:11

使用 chezmoi & vscode, 管理你的 dotfiles

什么是 dotfiles

In Unix-like operating systems, any file or folder that starts with a dot character (for example, /home/user/.config), commonly called a dot file or dotfile.
任何以 . 开头去命名的文件大概目录都可以称为 dotfile, 在 Unix-like 系同一般用的比力多, 但现在 dotfile 一般用于管理应用/软件的设置, 所以 Windows 平台上也可以看到 dotfile 的身影.
什么是 chezmoi

chezmoi 是使用 Go 编写的跨平台 dotfiles 管理工具, 使用同一的 Git 堆栈进行设置同步, 可以很方便的帮助我们在多个开发情况共用一套设置, 免除一些同一工具链必要手工重新在多个机器设置的工作量.
开源社区流行的 dotfiles 管理工具很多, 我们可以在这个网站上可以看到: https://dotfiles.github.io/utilities/.
本篇文章主要先容使用 chezmoi 进行 dotfiles 管理的一些根本流程, 还会先容怎样使用 vscode 设置 chezmoi 让设置管理体验更好的一些小技巧.
chezmoi 管理 dotfile 工作流

# 在使用 chezmoi 时, 需要先安装 chezmoi, 可以参考: https://www.chezmoi.io/install
sh -c "$(curl -fsLS get.chezmoi.io)"
# 安装完后初始化 chezmoi 的工作目录
chezmoi init
# 使用 chezmoi cd 可以直接切换到工作目录
chezmoi cd
# 然后使用 git 将工作目录和代码仓库关联起来即可
git init
git remote add origin <your-git-repo>官方文档也给出了使用 chezmoi 管理 dotfile 的工作流大概是怎么样的, 这里稍作解释:
https://img2024.cnblogs.com/other/1432456/202404/1432456-20240427115517099-744999023.png
我们以 .bashrc 文件的管理为例子:
# Step 1、将 .bashrc 文件纳入 chezmoi 管控范围
# chezmoi 会将该文件拷贝到 chezmoi 工作目录下, 会重命名为 dot_bashrc, 使用 dot 替换 .
chezmoi add .bashrc
# .bashrc 文件纳入管控之后, 就不应该在修改配置的时候编辑 .bashrc 文件了, 而是编辑 chezmoi 工作目录下的 dot_bashrc 文件
# 可以切换去工作目录查看下
chezmoi cd
ls -al
# Step 2、配置的修改我们可以使用如下命令去修改, chezmoi 会使用文本编辑器打开对应的 dot_bashrc 文件
chezmoi edit ~/.bashrc
# Step 3、配置修改后是还没有应用到 .bashrc 文件的, diff 命令可以用来查看修改情况
chezmoi diff ~/.bashrc
# Step 4、想应用修改后的配置可以使用 apply 命令
chezmoi apply ~/.bashrc
# 至此已经基本完成一次 dotfile 的管理, 但为了想要在其他机器也使用这此改动, 是需要使用 git 做一次配置同步的chezmoi 使用的一些小技巧与设置建议

1、替换 chezmoi edit 使用的默认编辑器为 vscode

chezmoi edit 默认根据 $VISUAL 或 $EDITOR 情况变量决定使用什么编辑器打开文件, 我们可以修改 chezmoi 的设置文件改变 chezmoi 文件的行为, 设置文件一般在 ~/.config/chezmoi 目录下, 参考设置如下:
# 控制 chezmoi edit 命令使用的编辑器, code --wait 会确保文件关闭再继续
# 配置文件在:~/.config/chezmoi/chezmoi.toml

    command = "code"
    args = ["--wait"]tips: chezmoi apply 应用修改后的设置时, 会根据 chezmoi 工作目录的层级去覆盖 HOME 目录对应的文件
2、替换 chezmoi diff 使用的 diff 工具为 vscode

万物皆可 vscode, 假如你想使用 vscode 的 dif 能力怎么办, 这里直接给出 chemoi 的参考设置:
# https://github.com/twpayne/chezmoi/discussions/2424

command = "code"
args = ["--wait", "--diff", "{{ .Destination }}", "{{ .Target }}"]


command = "bash"3、敏感数据存储

假如你想用 chezmoi 管理你的密钥(例如: id_rsa ssh 密钥),同时又想把你的 dotfiles 设置在 GitHub 共享出来,chezmoi 自带了敏感数据存储的方案,可以使用 GPG、AGE 等对设置文件进行加密, 参考: https://www.chezmoi.io/user-guide/encryption/
本文由博客群发一文多发等运营工具平台 OpenWrite 发布

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 使用 chezmoi & vscode, 管理你的 dotfiles