利用 chezmoi & vscode, 管理你的 dotfiles

打印 上一主题 下一主题

主题 754|帖子 754|积分 2262

什么是 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 工作流
  1. # 在使用 chezmoi 时, 需要先安装 chezmoi, 可以参考: https://www.chezmoi.io/install
  2. sh -c "$(curl -fsLS get.chezmoi.io)"
  3. # 安装完后初始化 chezmoi 的工作目录
  4. chezmoi init
  5. # 使用 chezmoi cd 可以直接切换到工作目录
  6. chezmoi cd
  7. # 然后使用 git 将工作目录和代码仓库关联起来即可
  8. git init
  9. git remote add origin <your-git-repo>
复制代码
官方文档也给出了利用 chezmoi 管理 dotfile 的工作流大概是怎么样的, 这里稍作表明:

我们以 .bashrc 文件的管理为例子:
  1. # Step 1、将 .bashrc 文件纳入 chezmoi 管控范围
  2. # chezmoi 会将该文件拷贝到 chezmoi 工作目录下, 会重命名为 dot_bashrc, 使用 dot 替换 .
  3. chezmoi add .bashrc
  4. # .bashrc 文件纳入管控之后, 就不应该在修改配置的时候编辑 .bashrc 文件了, 而是编辑 chezmoi 工作目录下的 dot_bashrc 文件
  5. # 可以切换去工作目录查看下
  6. chezmoi cd
  7. ls -al
  8. # Step 2、配置的修改我们可以使用如下命令去修改, chezmoi 会使用文本编辑器打开对应的 dot_bashrc 文件
  9. chezmoi edit ~/.bashrc
  10. # Step 3、配置修改后是还没有应用到 .bashrc 文件的, diff 命令可以用来查看修改情况
  11. chezmoi diff ~/.bashrc
  12. # Step 4、想应用修改后的配置可以使用 apply 命令
  13. chezmoi apply ~/.bashrc
  14. # 至此已经基本完成一次 dotfile 的管理, 但为了想要在其他机器也使用这此改动, 是需要使用 git 做一次配置同步的
复制代码
chezmoi 利用的一些小本领与配置发起

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

chezmoi edit 默认根据 $VISUAL 或 $EDITOR 环境变量决定利用什么编辑器打开文件, 我们可以修改 chezmoi 的配置文件改变 chezmoi 文件的行为, 配置文件一般在 ~/.config/chezmoi 目录下, 参考配置如下:
  1. # 控制 chezmoi edit 命令使用的编辑器, code --wait 会确保文件关闭再继续
  2. # 配置文件在:  ~/.config/chezmoi/chezmoi.toml
  3. [edit]
  4.     command = "code"
  5.     args = ["--wait"]
复制代码
tips: chezmoi apply 应用修改后的配置时, 会根据 chezmoi 工作目录的层级去覆盖 HOME 目录对应的文件
2、替换 chezmoi diff 利用的 diff 工具为 vscode

万物皆可 vscode, 如果你想利用 vscode 的 dif 能力怎么办, 这里直接给出 chemoi 的参考配置:
  1. # https://github.com/twpayne/chezmoi/discussions/2424
  2. [diff]
  3. command = "code"
  4. args = ["--wait", "--diff", "{{ .Destination }}", "{{ .Target }}"]
  5. [merge]
  6. command = "bash"
复制代码
3、敏感数据存储

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

没腿的鸟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表