把 NvChad 的 custom 目录做成独立的 Git 仓库 是最优方案!这样既能备份所有自定义配置(不仅是 Mapping),又能跨设备同步、版本控制,还不影响 NvChad 本身的更新(NvChad 是主仓库,custom 是你的独立配置仓库)。

核心思路:lua/custom/ 目录单独作为一个 Git 仓库,推送到你的 Github,后续迁移时直接克隆这个仓库到 NvChad 的 lua/ 目录下即可,完全兼容 NvChad 的加载逻辑。

第一步:整理 custom 目录结构(规范且通用)

先确保你的 custom 目录只包含 自己的自定义配置,结构清晰(后续可扩展插件、全局选项等),示例如下:

~/.config/nvim/lua/custom/
├── mappings.lua  # 你的自定义快捷键(核心文件)
├── plugins/      # 后续添加自定义插件(可选,比如额外装的插件配置)
│   └── example.lua
├── options.lua   # 全局选项(比如缩进、编码等,可选)
└── .gitignore    # Git 忽略文件(关键,避免提交无用文件)

必加文件:.gitignore

custom/ 目录下新建 .gitignore,避免 Git 跟踪临时文件/缓存,内容如下:

# 忽略 Nvim 临时文件
*.swp
*.swo
*.tmp
.DS_Store
 
# 忽略插件缓存(如果用了 lazy.nvim,可选)
lua/custom/plugins/lazy-lock.json

第二步:初始化 custom 为 Git 仓库

打开终端,按以下步骤操作(全程在 custom 目录下执行):

1. 进入 custom 目录

cd ~/.config/nvim/lua/custom/

2. 初始化 Git 仓库

git init  # 把当前目录变成 Git 仓库

3. 添加所有文件到暂存区

git add .  #  "." 表示添加当前目录下所有文件(包括子目录)

4. 提交到本地仓库

git commit -m "初始化 NvChad 自定义配置:添加插入模式映射(Ctrl+a/Ctrl+e/Ctrl+H)"

(提交信息可以自定义,清晰描述本次提交的内容即可)

第三步:在 Github 新建仓库(存放你的配置)

1. Github 操作

  • 登录你的 Github 账号,点击右上角 +New repository
  • 仓库名称建议:nvchad-custom(直观,表明是 NvChad 的自定义配置);
  • 描述(可选):My custom config for NvChad ( mappings, plugins, options )
  • 可见性:选 Public(公开分享)或 Private(仅自己用);
  • 其他选项:不要勾选“Initialize this repository with a README”(我们本地已经有文件,避免冲突);
  • 点击 Create repository

2. 复制仓库地址

仓库创建后,点击 <> Code → 复制你的仓库地址(推荐用 SSH 地址,需要提前配置 Github SSH 密钥;如果没配置,先用 HTTPS 地址):

  • SSH 地址示例:git@github.com:你的用户名/nvchad-custom.git
  • HTTPS 地址示例:https://github.com/你的用户名/nvchad-custom.git

第四步:将本地 custom 仓库推送到 Github

回到终端(仍在 custom 目录下),执行以下命令:

1. 关联远程仓库(把本地仓库和 Github 仓库绑定)

# 替换成你复制的 Github 仓库地址
git remote add origin git@github.com:你的用户名/nvchad-custom.git

2. 推送本地代码到 Github(首次推送)

# 对于新建的 Github 仓库,首次推送需要指定主分支(通常是 main)
git push -u origin main

验证:

推送成功后,刷新你的 Github 仓库页面,就能看到 custom 目录下的所有文件(mappings.lua.gitignore 等),备份完成!

第五步:跨设备迁移/恢复配置(关键!)

当你换电脑、重装系统,或需要在另一台设备使用自己的配置时,按以下步骤快速恢复:

1. 先安装 NvChad(按官方步骤)

# 克隆 NvChad 到默认配置目录(如果还没安装)
git clone https://github.com/NvChad/NvChad ~/.config/nvim --depth 1 && nvim

安装完成后,关闭 NvChad(确保核心配置加载完成)。

2. 删除 NvChad 默认的 custom 目录(如果存在)

rm -rf ~/.config/nvim/lua/custom/

3. 克隆你自己的 nvchad-custom 仓库到 lua/ 目录下

# 替换成你的 Github 仓库地址,克隆到 lua/custom 目录
git clone git@github.com:你的用户名/nvchad-custom.git ~/.config/nvim/lua/custom/

4. 启动 NvChad,配置自动生效!

打开 NvChad 后,你的自定义 Mapping(Ctrl+a/Ctrl+e/Ctrl+H)会自动加载,完全无需额外配置——因为 NvChad 会优先读取 lua/custom/ 目录下的配置。

后续维护:更新/修改自定义配置

之后你想修改 Mapping、添加插件配置等,直接在 ~/.config/nvim/lua/custom/ 目录下操作,然后通过 Git 提交推送即可,步骤如下:

# 1. 进入 custom 目录
cd ~/.config/nvim/lua/custom/
 
# 2. 添加修改的文件(或用 git add . 添加所有修改)
git add mappings.lua  # 比如修改了快捷键,只提交这个文件
 
# 3. 提交修改
git commit -m "更新插入模式映射:调整 Ctrl+a 为绝对行首"
 
# 4. 推送到 Github(同步备份)
git push origin main

进阶优化(可选)

1. 给仓库加 README.md

custom/ 目录下新建 README.md,记录你的配置说明(方便自己后续查看,或分享给他人),示例:

# NvChad Custom Config
我个人的 NvChad 自定义配置,包含快捷键、插件、全局选项等。
 
## 核心功能
- 插入模式快捷键:
  - Ctrl+a → 跳转到行首(跳过空白)
  - Ctrl+e → 跳转到行尾
  - Ctrl+H → 向左移动一个字符(替代默认 Backspace)
- 后续可添加:自定义插件(如 nvim-tree、telescope 配置)、全局缩进/编码设置等。
 
## 使用方法
1. 安装 NvChad:`git clone https://github.com/NvChad/NvChad ~/.config/nvim --depth 1`
2. 删除默认 custom 目录:`rm -rf ~/.config/nvim/lua/custom`
3. 克隆本仓库:`git clone git@github.com:你的用户名/nvchad-custom.git ~/.config/nvim/lua/custom`
4. 启动 NvChad 即可生效。

2. 分支管理(可选)

如果想测试新配置(比如新增插件),可以创建测试分支,避免影响主分支的稳定配置:

# 创建并切换到 test 分支
git checkout -b test
 
# 测试完成后,合并到 main 分支
git checkout main
git merge test
 
# 推送合并后的代码
git push origin main

关键优势

  1. 完全独立:你的配置仓库和 NvChad 主仓库互不干扰,NvChad 升级(git pull)不会覆盖你的自定义配置;
  2. 跨设备同步:任何设备只要克隆你的 nvchad-custom 仓库,就能复用所有配置;
  3. 版本控制:Git 会记录所有修改,不小心改崩了可以回滚到之前的稳定版本(git log 查看历史,git checkout 提交ID 回滚);
  4. 可扩展:后续添加插件配置、全局选项等,直接放在 custom 目录下,仓库会自动跟踪。

按这个方法,你的 NvChad 自定义配置就完全由自己掌控,备份、迁移、更新都非常方便!