
现在这些配置不再靠 `curl` 单独下载到 `$HOME`。我的配置统一放在 dotfiles 仓库里，通过 `chezmoi` 管理，`tmux`、`vim`、`zsh`、`ghostty`、`zellij`、`git` 这类配置都走同一套 apply 流程。

如果只想看我日常使用哪些工具，可以看[个人使用的工具](/posts/personal-tools/)。

这样做的好处是配置来源明确、可以 review diff，也不会在不同机器上手动覆盖一堆点文件。

## 仓库结构

我现在把配置分成两个仓库：

- `jimyag/p-dotfiles`：私有仓库，也是 `chezmoi` 的源目录。敏感配置、公司相关配置、私有脚本都放这里。
- `jimyag/dotfiles`：公开仓库，存放通用配置。它作为 `p-dotfiles` 里的 `public_dotfiles` 子模块存在。

`p-dotfiles` 里的 `home/` 是最终给 `chezmoi` 使用的配置源。公开配置不会直接复制一份到私有仓库，而是由同步脚本在 `home/` 下创建指向 `public_dotfiles/home/` 的软链接。这样公开配置只维护在 `dotfiles`，私有配置只维护在 `p-dotfiles`。

## 新机器使用

新机器上先把私有仓库作为 chezmoi 源目录拉下来：

```bash
chezmoi init git@github.com:jimyag/p-dotfiles.git
```

进入源目录后初始化并同步公开子模块：

```bash
cd ~/.local/share/chezmoi
git submodule update --init --recursive
./scripts/sync_public_dotfiles.sh
```

最后先看 diff，再应用：

```bash
chezmoi diff
chezmoi apply -v
```

后续如果 `dotfiles` 里的公开配置更新了，在 `p-dotfiles` 里重新跑同步脚本，再提交 `public_dotfiles` 的 submodule 指针即可。

## 配置管理

常用流程：

```bash
chezmoi diff
chezmoi apply -v
```

如果只想应用某个文件，可以指定目标路径：

```bash
chezmoi apply -v ~/.tmux.conf
chezmoi apply -v ~/.vimrc
chezmoi apply -v ~/.zshrc
```

配置改动一般先在 chezmoi 源目录里完成，再 apply 到本机：

```bash
cd ~/.local/share/chezmoi
chezmoi diff
chezmoi apply -v
```

旧的 `tmux.conf`、`vimrc.conf`、`zshrc.conf` 这些文件还保留在文章目录里，更多是历史参考或临时查看用途，不再作为主要安装方式。

## 常用配置入口

- `~/.tmux.conf`：tmux 基础配置和快捷键
- `~/.vimrc`：轻量 Vim 配置
- `~/.zshrc`：shell 入口，按模块加载其他配置
- `~/.profile.d/`：按用途拆分的 shell 片段

更新后让当前 shell 或 tmux 立即生效：

```bash
source ~/.zshrc
tmux source-file ~/.tmux.conf
```

## Vim 快捷键

### 删除

`bdw` ：删除当前光标所在单词，b 让光标回退到单词的开头

`daw` ：删除当前光标所在单词，a 让光标回退到单词的开头

`dT"`：删除当前光标所在的双引号，T 让光标回退到双引号的开头

`dt"` ：删除当前光标所在的双引号，t 让光标回退到双引号的结尾

