关键是要用完整路径加 -multiInst -notabbar -nosession -noPlugin 参数配置 core.editor,并设 Notepad++ 默认编码为 UTF-8(无 BOM)、行尾为 Unix (LF),避免 PATH 依赖和本地配置覆盖。

git config 怎么设 Notepad++ 为默认 commit 编辑器
直接生效的关键是让 git config --global core.editor 指向 Notepad++ 的可执行路径,并带上正确的启动参数。Windows 上最稳的方式不是只写 notepad++.exe,而是用完整路径 + -multiInst -notabbar -nosession -noPlugin 参数组合。
常见错误是只配了 notepad++.exe,结果 Git 提交时卡住、弹多个窗口、或改完保存后 Git 不认提交信息——本质是 Notepad++ 默认以“等待进程结束”方式启动,而没加 -multiInst 时它会复用已有实例,Git 就收不到退出信号。
- 推荐命令(路径按你实际安装位置调整):
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
- 如果装在
Program Files (x86),路径里有空格,必须用单引号包裹整个路径+参数 - 参数含义:
-multiInst强制新实例(Git 才能等它退出),-notabbar避免多标签干扰,-nosession防止恢复上次会话覆盖临时文件,-noPlugin减少插件干扰提交流程
Notepad++ 启动后 Git 提交信息不显示 / 保存后不生效
这是 Windows 下典型路径编码和换行符问题:Git 生成的临时文件是 UTF-8 无 BOM,而 Notepad++ 默认新建文件用 ANSI 编码,且可能自动转成 CRLF;如果编辑后保存为 ANSI 或带 BOM,Git 会解析失败,静默丢弃内容。
必须手动设置 Notepad++ 的默认行为:
- 菜单栏 → 设置 → 首选项 → 新建文档 → 编码选
UTF-8(不是UTF-8-BOM) - 同页 → 行尾格式选
Unix (LF)(Git 内部统一用 LF,混用 CRLF 可能导致Aborting commit due to empty commit message) - 保存时别手抖点“另存为”,直接 Ctrl+S —— 否则可能意外改编码或换行符
Git Bash 里运行 notepad++ 报错 command not found
这不是 Notepad++ 没装好,而是 Git Bash 找不到命令。Git Bash 自带的 shell 不读 Windows 的 PATH 环境变量,所以即使你在系统 PATH 里加了 Notepad++ 目录,Bash 也看不见。
有两个解法,优先选第一个:
- 不用依赖 PATH,直接在
core.editor里写绝对路径(见第一个副标题),一劳永逸 - 如果坚持用命令名,得在
~/.bashrc里手动加:export PATH="/c/Program Files/Notepad++:$PATH"
(注意路径用正斜杠、盘符小写、空格要转义或引号) - 改完
.bashrc要重新打开 Git Bash 或运行source ~/.bashrc,否则不生效
为什么不用 git config --system 或 --local
--system 要管理员权限,改的是全机配置,普通用户常被拦截;--local 只对当前仓库生效,换个项目就得重配。绝大多数人只需要 --global —— 它写在 ~/.gitconfig,覆盖所有个人仓库,且无需提权。
但要注意:如果你之前用过 --local 设过 editor,它的优先级高于 --global,会导致全局设置不生效。检查方法:
git config --get core.editor如果返回空,再试
git config --local --get core.editor,有输出就说明本地配置在起作用,删掉它:
git config --local --unset core.editor
真正麻烦的从来不是设路径,而是各种层级配置互相覆盖、编码和换行符这种看不见的坑。配完别急着关窗口,先 git commit --allow-empty -m "test" 空提交试一次,看能不能正常唤起、编辑、保存、完成。

















