同步不同设备间的设置-dotfiles
摘要
本文介绍了使用dotfiles同步不同设备间配置文件的方法。作者通过在任意路径下维护一个dotfiles仓库,并使用软链接将配置文件映射到正确路径,解决了直接在用户目录下管理配置文件的复杂性。文章还介绍了rcm工具的使用,包括创建、更新和管理dotfiles的命令。作者分享了个人配置经验,如切换到zsh终端环境并使用zinit、fzf、ripgrep等工具优化工作流,同时提供了dotfiles仓库的链接,便于读者参考和实践。
曾经遇到过一个问题,我的工作电脑、个人电脑、服务器如何同步一些个人设置?
因为很多配置文件都是在~/路径下的,我最开始的做法是在~/路径下维护一个git仓库,然后在不同机器间同步。这样的问题是,这个仓库“太大了”,相当于~/路径下的所有文件对它都是可见的,因此维护起来比较麻烦。
最近看Codespace文档的时候了解到了dotfiles这个概念,目前完全可以满足我的需求。
dotfiles
dotfiles如其名,就是点文件,因为类Linux系统下的大多数配置文件都是.xxx的形式,因此而得名。其思想也是使用一个git仓库管理所有的配置文件,但是不像开头那样在~/下维护一个仓库,而是在任意路径下维护诸如名字为dotfiles的仓库。这样配置文件的路径不是乱套了吗?dotfiles的核心思想就是使用软链接将配置文件链接到正确的路径。
比如在.dotfiles目录下管理如下配置文件:
| |
经过软链接后在~/目录下映射为了如下配置文件:
| |
以上,还使用了tag来管理不同类别的配置文件,这样不会很复杂吗?如何简化?使用rcm.
rcm是一款dotfiles的管理工具。用它可以实现对dotfiles的创建、映射、打标签等功能。不过有点奇怪,虽然是通过apt install rcm之类的命令安装的,但是rcm并不是一条命令,它提供了4条相关命令:
| |
分别是打印(ls)、创建(mk)、删除(dn)、构建/更新(up). 除基础命令外,还带额外参数,比如打标签(-t),不加点(-U)等。要了解更多参数和用法,更好的方法是阅读man。
我的配置
以前设备上的配置文件已经丢失,之后我会使用dotfiles的方式重新管理设备的配置文件。目前的配置文件更新在https://github.com/caibingcheng/dotfiles.
目前,我的终端环境切换到了zsh,此前一直是bash。在“初次”使用zsh时发现了一些比较好用的东西:
zinit,主要用于替换oh-my-zsh,zinit一个zsh插件管理器,oh-my-zsh是一个zsh配置环境,前者很轻后者有点重。fzf,是一款查找工具,可以查找管道信息,也可以查找文件,和find对比的话,非常人性化,很早就有朋友给我推过,但是现在才使用。ripgrep,使用Rust编写,主要是用于替换grep,很早就开始使用了,对我来说属于必装项目。exa,主要用于替换ls,还在体验中,因为zinit的fzf-tab插件才了解到这个工具。
(这篇拖了好几天了,动手写之后发现也没太多内容)