分享下自己的简单 dotfiles,并想从大佬们的意见中学习 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Ethkuil
V2EX    程序员

分享下自己的简单 dotfiles,并想从大佬们的意见中学习

 
  •   Ethkuil
    Ethkuil 2024-01-10 23:15:48 +08:00 2637 次点击
    这是一个创建于 641 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/Ethkuil/dotfiles

    其实也没做太复杂的配置,我是倾向于尽量少做修改的。

    .vimrc 是直接照搬 MIT 的 Missing Semester 的。

    第 1 条附言    2024-01-11 12:25:19 +08:00
    [关于配置文件管理方案]
    我的配置管理是从管理 Windows GUI 软件散落在各处的各种配置文件(包括二进制文件)开始的,所以一开始就没考虑用 Git ,只是把配置文件搬到了“更安全”的 D 盘然后写个脚本软链接回去,再写个脚本根据命名约定调用所有配置脚本;管理 dotfiles 时就也是如此,只是单独建了个 dotnets 子目录。由于汇聚到了一起,所以用 Git 倒也不是问题。

    yadm ,相当于不局限于某个目录的 Git 。对「用 Git 仓库管理 dotnets 」确实是绝佳的。只是对 Windows 不太友好……

    dotbot ,使用一个 yaml 文件管理如何安装配置。我还是更喜欢「能单独配置某个软件」,因此不会切换过去;不过 dotbot 的参数还是挺值得参考的,覆盖了安装配置文件的常用操作。
    第 2 条附言    2024-01-13 01:55:17 +08:00

    改进了安装配置的脚本,支持跨平台、软链接前检测当前链接情况并相应处理(备份或跳过)。核心是这个 batch_relink.sh 脚本。

    写的过程挺折磨的,特别是 Windows 和 Unix 的路径风格差异真的把我整得头疼……不过全部优雅解决好后还是挺满足的,也算是收获颇丰。

    15 条回复    2024-01-12 00:15:43 +08:00
    kneo
        1
    kneo  
       2024-01-11 00:09:25 +08:00 via Android
    你这组织结构……怎么安装啊……
    我记得 dotfiles 项目一般是直接把目录 clone 到.config 就能用,也有的是提供一个脚本入口。你这个我感觉就是自己随便起的名字,然后自己手动一个个 link ?
    Ethkuil
        2
    Ethkuil  
    OP
       2024-01-11 00:31:12 +08:00
    @kneo 我其实写了自动化配置的脚本,不过没上传到仓库。

    我是把所有换电脑后需要保留的配置文件都放在 `D:\etc` 目录,每个程序的配置文件对应一个 `config` 程序完成 link 或 copy 的工作。然后顶层写了个 `config.ps1`,把子目录内所有名为 `config` 的脚本都调用一遍。
    Ethkuil
        3
    Ethkuil  
    OP
       2024-01-11 00:38:27 +08:00
    我目前其实没做在 Linux 上的 bootstrap ,因为用不太上。不过我的 config 程序里的 link/copy 都是调用另一个自己封装的脚本实现的,所以要做成支持 Linux 的也不难。
    jeesk
        4
    jeesk  
       2024-01-11 01:13:23 +08:00   1
    直接用 yadm 多省事。
    Ethkuil
        5
    Ethkuil  
    OP
       2024-01-11 02:46:22 +08:00 via Android
    好像有点重点歪,我其实主要想分享 dotfiles 的内容而非组织方式的……

    我使用的是 Windows ,还有很多 GUI 软件的配置文件也需要管理,甚至有些配置文件不是纯文本格式。只有 2 个分区,C 盘放重装后无需保留的、D 盘放需保留的,所以一些配置文件是存在 D 盘然后软链接到相应目录的,包括 dotfiles 。
    bigtear
        6
    bigtear  
       2024-01-11 09:30:28 +08:00
    @Ethkuil 最近重装系统我也搞了软链接,把 %APPDATA% 改成链接后遇到了 bug ,踩了个坑,其他的目录倒没啥问题
    ccqloveworld
        7
    ccqloveworld  
       2024-01-11 10:19:54 +08:00
    推荐下 https://github.com/anishathalye/dotbot 自动化配置 dotfiles
    zzhaolei
        8
    zzhaolei  
       2024-01-11 11:06:44 +08:00
    你这 dotfiles 也没什么内容可看啊。另外,我用 yadm 管理
    Ethkuil
        9
    Ethkuil  
    OP
       2024-01-11 11:43:04 +08:00 via Android
    @bigtear 好奇,求细说。我也是软链接的
    ruidoBlanco
        10
    ruidoBlanco  
       2024-01-11 15:32:41 +08:00   1
    我的。从第一个 commit 送上 GitHub ,已经 16 年了。

    https://github.com/roylez/dotfiles

    最开始自己软连接,后来用 stow ,所谓的专门的 dotfile 管理工具,不会用的,因为未必能有我的 repo 活得长。

    git 可以长久活下去,stow 也行。
    skt041959
        11
    skt041959  
       2024-01-11 16:09:20 +08:00
    ```
    inoremap <Left> <ESC>:echoe "Use h"<CR>
    inoremap <Right> <ESC>:echoe "Use l"<CR>
    inoremap <Up> <ESC>:echoe "Use k"<CR>
    inoremap <Down> <ESC>:echoe "Use j"<CR>
    ```
    如果你 vim 只是拿来临时改改配置的话,就不要这样给自己找麻烦了
    bigtear
    12
    bigtear  
       2024-01-11 17:10:24 +08:00
    @Ethkuil 有的软件使用了 Win32 转制 UWP 的 SDK ,这个 SDK 不支持软链接,现象是软链接了 %APPDATA% 之后这种软件都打不开了,显示参数错误,比如 Windows 终端、NanaZip 这种软件打开就显示参数错误。

    改成不链接了就能正常使用了

    然后还有个坑是我的库文件夹没有用系统自带的移动库文件夹位置设置,是直接链接到了用户文件夹里取代原有文件夹,有的软件会出一些奇奇怪怪的 Bug ,比如 vscode 的 go 插件运行会不正常;

    有个预期之内的不大的问题是拷贝文件会让 NTFS 文件系统以为是跨盘拷贝,而不是直接一个硬盘上操作,不能直接秒完成了。

    临时文件夹我第二次修改到其他位置,第一次的位置还是有东西在往里面写入,重启什么的还是有,好像是安装的各种 SDK 的安装包位置被 Windows 硬记录下来了了,经常自动下载,头疼
    bigtear
        13
    bigtear  
       2024-01-11 17:13:30 +08:00
    @bigtear 临时文件夹的文件名最好不要用奇奇怪怪的字符,放到纯英文路径最好,之前用 @Temp 有的程序会出 bug
    Ethkuil
        14
    Ethkuil  
    OP
       2024-01-11 22:22:55 +08:00
    @skt041959 hh 我直接复制了 MIT 的 Missing Semester 里提供的配置,感觉挺适合我的。其实没关系,我 Vim 的基本功能已经用得很熟了,确实用不到方向键。
    Ethkuil
        15
    Ethkuil  
    OP
       2024-01-12 00:15:43 +08:00
    简单重构了下(扁平化),并把自动完成配置的 `config.bat` 也上传上去了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     859 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 19:43 PVG 03:43 LAX 12:43 JFK 15:43
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86