notepad++代码自动补全需同时开启“启用每个输入的自动完成”和“函数参数提示”两项开关,并将严格命名的小写.api文件放入对应架构路径的autocompletion目录,且必须正确设置语言模式;插件冲突也会导致补全失效。

Notepad++ 默认完全不启用代码自动补全,敲 for 没反应、输 JSON. 不出方法列表,基本就是两个开关没开,或 .api 文件没放对位置。
必须勾选的两个自动完成开关
补全逻辑由底层触发机制控制,关了它,所有后续配置都白搭。
- 打开
设置 → 首选项 → 自动完成,只看最上面两项: -
启用每个输入的自动完成:这是总开关,不勾选,Ctrl+Space都弹不出列表 -
函数参数提示:决定输入printf(或document.getElementById(后是否显示参数说明 - 这两项不勾,后面所有配置都无效;改完立刻生效,但已打开的文件建议按
Ctrl+O重新加载一次(不用重启 Notepad++)
.api 文件路径和命名必须严格匹配位数与大小写
Notepad++ 不会自动猜路径,也不容错——放错一字符就失效。
- 64 位版:
.api文件放进%PROGRAMFILES%\Notepad++\autoCompletion\ - 32 位版:
.api文件放进%PROGRAMFILES(X86)%\Notepad++\autoCompletion\ - 文件名必须全小写,扩展名必须是
.api(Cpp.API、javascript.xml、JS.API全部无效) - 补全是前缀匹配:
JSON.能触发JSON.parse,但只输parse就不会出现
语言模式不对,.api 文件等于不存在
右下角状态栏显示 Normal text 或 CSS (Embedded),哪怕文件后缀是 .js,js.api 也不会加载。
- 点菜单
语言 → C++(不是C),JavaScript(不是JS或HTML) -
.scss、.ts等非原生语言需手动切换为CSS或JavaScript才能用对应补全 - 自定义语言(UDL)的补全必须写进
userDefinedLang.xml的<functions></functions>节点,不能塞在<keywords></keywords>里 - 改完语言模式后,按
Ctrl+Space测试:如果列表为空,说明.api文件未被识别
插件冲突比配置错误更难察觉
补全菜单能弹出来,但按 Tab 或 Enter 没反应?大概率是插件劫持了输入事件。
- 常见干扰插件:
QuickText、Python Script、NppExec - 验证方法:按
Win+R输入"C:\Program Files\Notepad++\notepad++.exe" -noPlugin(路径按实际调整),启动后测试 - 若恢复正常,说明有插件冲突;逐个禁用插件定位,别直接删配置文件
- 补全逻辑本身极轻量,但一旦和插件快捷键重叠(比如都监听
Tab),就卡在“看得见、选不了”的状态——这个细节最容易被忽略,也最难排查











