Notepad++的“文件关联”设置仅控制语法高亮等编辑行为,不改变系统默认打开方式;要让特定扩展名双击用Notepad++打开,须通过Windows默认应用设置或右键属性更改;如需调用外部程序处理当前文件,应使用“运行→运行…”并配合内置变量。

Notepad++ 里无法直接设置“用其他程序打开特定扩展名”
Notepad++ 本身不提供「双击 .log 文件时调用 PowerShell 而不是 Notepad++」这类系统级文件关联控制。它只管自己“作为哪个程序被调用”,不负责决定“哪个程序去打开 .xyz”。真正的文件关联由 Windows 系统管理,Notepad++ 只能被动响应。
所以你看到的“设置 → 首选项 → 文件关联”只是告诉 Notepad++:当它自己被用来打开文件时,对哪些扩展名启用语法高亮、自动缩进等编辑行为——和“用什么程序打开”是两回事。
想让 .xyz 文件双击后用 Notepad++ 打开,该改 Windows 默认应用
这是最常见需求的实际落点:比如希望双击 .conf 或 .env 时自动启动 Notepad++(而不是记事本或 VS Code)。操作路径如下:
- 右键任意一个
.xyz文件 → 属性 → “打开方式”旁点“更改” - 在弹出窗口中选
Notepad++.exe(若没列出,点“更多应用”→“在这台电脑上查找其他应用”,定位到C:\Program Files\Notepad++\notepad++.exe) - 勾选“始终使用此应用打开 .xyz 文件”
注意:某些扩展名(如 .txt、.log)可能被系统保护,需先在“设置 → 应用 → 默认应用 → 按文件类型指定默认应用”里手动覆盖。
想让 Notepad++ 的“运行”菜单里执行外部命令(比如用 Python 处理当前 .csv)
这才是 Notepad++ 真正能主动控制的“关联”:在编辑器内调用别的工具处理当前文件。关键路径是:运行 → 运行…(F5),然后填入命令行模板:
python "D:\scripts\process_csv.py" "$(FULL_CURRENT_PATH)"
其中 $(FULL_CURRENT_PATH) 是 Notepad++ 内置变量,会自动替换为当前文件完整路径。常用变量还有:$(CURRENT_DIRECTORY)、$(FILE_NAME)。
保存为快捷键后,哪怕当前是 .csv 文件,也能一键触发外部脚本——这比系统级关联更灵活,也更安全(不干扰全局行为)。
别碰“文件关联”设置里的扩展名列表,除非你真要改语法高亮
很多人误以为在这里加 .sh 就能让双击 .sh 启动 WSL,其实完全无效。这个列表只影响:
- 是否对
.xyz启用已安装的语言语法(比如加.vue后,再打开xxx.vue就能高亮) - 是否继承对应语言的缩进/编码/换行符规则
- 是否在“语言”菜单里显示该语言项
加错扩展名不会报错,但也不会带来任何“打开行为”的变化。真正要改打开方式,永远从 Windows 设置或“运行”菜单入手。
系统级关联和编辑器内命令调用,是两条完全独立的路径,混用就会卡在“明明设了却没反应”的状态里。

















