notepad++无文件内变量/函数名提示功能,仅支持语言api补全和基础关键词补全;需勾选“启用每个输入的自动完成”和“函数参数提示”,设置正确语言模式,并将小写.api文件放入对应autocompletion路径。

Notepad++ 的“文件自动完成列表”根本不存在——它没有基于当前文件内容的单词级自动补全(即所谓“文件内变量/函数名提示”)功能,只有语言 API 补全和基础关键词补全。 所有声称“输个 varName 就能补全全文变量”的效果,要么是误把其他编辑器行为套用过来,要么混淆了「单词自动完成」(Word auto-completion)和「API 函数补全」这两个完全不同的机制。
为什么按 Ctrl+Space 没反应,或只弹出 if/for 不弹函数?
这是最典型的配置断裂点。Notepad++ 的补全触发依赖三层联动:
-
启用每个输入的自动完成必须勾选——这是总开关,不勾则Ctrl+Space无效、输入无响应、所有补全逻辑静默退出 -
函数参数提示必须勾选——否则括号内参数说明、CSS 属性值提示、JS 方法链提示(如document.)全部不显示 - 当前文件语言模式必须匹配:右下角状态栏显示
Python,不能是Python (Embedded)或Normal text;C++不能错选成C
改完这两项后无需重启,但已打开的文件建议用 Ctrl+O 重新加载一次,避免缓存残留导致旧模式未刷新。
想补 printf()、JSON.parse() 这类真实函数?路径和命名一个都不能错
这类补全靠的是 .api 文件(不是 .xml),且加载路径、大小写、扩展名三者必须严丝合缝:
- 64 位系统路径:
%PROGRAMFILES%\Notepad++\autoCompletion\(注意是autoCompletion,不是plugins\APIs) - 32 位系统路径:
%PROGRAMFILES(X86)%\Notepad++\autoCompletion\ - 文件名必须全小写:
cpp.api、javascript.api、php.api—— 写成PHP.API或javascript.xml就直接被忽略 - 补全前缀必须严格匹配:输
docu不会出document,但输document.才能触发方法列表;JSON.可以,json.不行(大小写敏感)
插件冲突会让补全菜单“弹出来却选不了”
很多用户看到补全框弹出、箭头能上下移动,但按 Enter 或 Tab 没反应——大概率是插件劫持了按键:
- 常见冲突插件:
QuickText、Python Script、TextFX,它们常重定义Tab行为 - 快速验证:用命令行启动
"C:\Program Files\Notepad++\notepad++.exe" -noPlugin,再测试补全是否恢复正常 - 别把
.api文件扔进plugins\目录——它只会被无视,Notepad++ 根本不从那里读取补全数据
最容易被忽略的其实是语言模式和 .api 文件的耦合关系:哪怕 cpp.api 放对了路径、开关也全开了,只要当前文件被识别为 Normal text,它就永远不会加载。确认方式只有一个:看右下角,不是靠文件后缀,也不是靠手动选了一次就一劳永逸——每次新建或切换标签都可能重置。











