dotfiles

type
Post
status
Published
date
slug
dotfiles
summary
tags
icon
 

1. 初始化

什么都不用创建,直接在 ~ 目录下执行下面三条命令就行
notion image
做了以下这些事:
  • 创建 ~/.dotfiles 目录
  • add Dotbot as a submodule
  • 让Dotbot清理用户主目录中由Dotbot添加的损坏链接。简单来说,如果你允许它清理损坏的链接,它将会删除你主目录中所有Dotbot无法找到原始文件路径的损坏链接。
  • Dotbot ~/.profile
  • Dotbot ~/.bashrc
  • 设置 git 全局(可选) 用户名和邮箱

执行完可以看到 ~/.profile~/.bashrc 两个文件被链接
 
notion image

2. .install.conf.yaml

格式如下:
link 下的格式为 在 ~ 目录下的文件名: 在该目录中的文件名及位置 (中间用分号空格隔开),且该目录中的要有这个文件,这样才能映射到外面(~)去;如果外面有文件,需要先删除该文件。
例如我想在 ~ 目录下有个 .yabairc 文件,对应放在 .dotfiles/yabai 目录下的 yabairc 文件:
  • .dotfiles 目录下创建 yabai 目录
  • yabai 目录下创建 yabairc 文件
  • 删除 ~ 目录下的 .yabairc 文件(如有)
  • link 部分为: ~/.yabairc: ./yabai/yabairc
  • 执行 ./install 脚本
如果省略源位置或将其设置为 null ,Dotbot 将使用目标文件的基本名称,如果存在,则去除前导 . 。

2.1 添加文件(以 vim 为例)

以 vimrc 为例
  1. ~/.dotfiles 目录下新建一个 vimrc 文件
  1. 修改 .install.conf.yaml
    1. notion image
  1. ~/.dotfiles 目录下执行 ./install
    1. notion image

2.2 vim 插件

不需要在 Vim 使用一个插件 管理器(从 Vim 8.0 开始)。你可以使用内置的插件管理系统。只需要创建一个 ~/.vim/pack/vendor/start/ 的文件夹,然后把插件放到这里(比如通过 git clone)。
  1. 创建目录
    1. 修改 .install.conf.yaml
      1. notion image
    1. ~/.dotfiles 目录下执行 ./install
    1. 添加插件
      1. 为例
        使用
        • :NERDTree 进入 NERDTree
          • notion image
          • ~/.vimrc 中添加 nerdtree 的快捷键指令
            • 使用 \n 即可快捷打开 NerdTree,
              \f 在 NERDTree 窗口中定位并打开当前编辑文件所在目录。
        • 按下 ? 打开 quickhelp,再按下 ? 退出
        • 使用 h/j/k/l 等 vim 控制键在 左侧目录区移动光标
        • 使用 o 预览,对目录来说是展开,对文件来说是在右侧窗口中打开。
        • 如何回到左侧目录树? Ctrl + w h (和在多个vim窗口中移动焦点一样)
        • 使用 tT 在新 tab 中打开当前文件,gt 命令将向后切换到下一个标签页,gT 命令将向前切换到上一个标签页。 :tabc 关闭当前 tab
        • I 显示/隐藏 .文件
        • 分屏打开
          • i / gi 上下分屏(前者光标会到新打开的文件窗口中,后者则保持在 NERDTree 窗口)
            notion image
            s / gs 左右分屏(同上)
            notion image
        • 文件搜索:使用 / 键可以在 Nerdtree 中搜索文件。
        • 目录导航:
          • P 回到当前 nerdtree 的根目录
          • p 回到当前光标所在的父目录
          • K / J :当前光标所在目录层级的第一个项目/最后一个项目
          • Ctrl-j / Ctrl-k :当前光标所在层级的上一个/下一个同同层级项目
        • 文件操作
          • C 将当前 nerdtree 根目录设置为当前选中目录
          • m 显示对当前文件或目录的操作
            • notion image
          • u / U 回到当前目录的上级目录(后者保持当前目录展开)
          • cd 将当前光标所在目录设为 cwd
          • CD 将 nerdtree 顶部目录跳转到 cwd
     

    2.3 tmux 插件

    2.3.1 安装 tmux-plugins/tpm: Tmux Plugin Manager

    • 先在 ~/.dotfiles 目录下创建 tmux 目录
    • .install.conf.yaml link 项目下添加 ~/.tmux:
    • clone tpm

      2.3.1 配置 ~/.tmux.conf

      重新加载 tmux

      2.3.2 安装其他插件

      (可在 tmux 状态栏显示 CPU 用量)为例
      • ~/.tmux.conf 添加
        • 设置显示方式
          在 tmux 中 按 pre I ,会自动拉取插件
          卸载插件
          1. ~/.tmux.conf 删除 @plungin 行及相关配置行
          1. prefix alt+u (Mac 是 Opt + u,但默认会出现一个 ü 字符,需要被 Opt 设为 Meta 键,在 Warp 中设置如下)
            1. notion image
          notion image

      2.4 zsh

      2.4.1 将 bash 换为 zsh

      执行完后需要重启终端: exit (或 exec bash?)

      2.4.2 安装zsh插件

      添加配置,创建目录(zsh/plugins)和文件(zshrc, p10k.zsh),然后执行 ./install
      notion image
        • 安装 nerd fonts 字体
          • 以 Mac 为例
            修改终端模拟器(如 warp,iterm2 等)的字体
            notion image
            修改 VS Code 终端字体为 MesloLGM Nerd Font Mono
            notion image
        • 服务器安装
          • Restart Zsh with exec zsh
            Type p10k configure if the configuration wizard doesn't start automatically.

      2.4.3 安装其他软件

      • ./zoxide_install.sh

      3. submodule

      notion image
      由于已经 add 了,所以需要 -f 参数

      4. 推送到 GitHub

      • 机器上生成 公钥
      • GitHub 网页端 Settings -> SSH and GPG keys -> New SSH key 中将公钥内容粘贴进去,并取一个适当的名称。
      • 机器上执行

        4. 其他机器使用

        1. 创建目录,并与远程仓库连接,然后拉取 main
          1. 执行 ./install (如果有重复文件或目录,需手动删除后再次运行 ./install)

          TODO: mac/linux/wsl 分支

           

          © insv 2021 - 2023