notepad++没有“安装词库”操作,补全依赖api.xml或userdefinedlang.xml中正确配置的或节点,需严格匹配路径、大小写并重启生效;ctrl+space无反应首先检查“启用每个输入的自动完成”和“函数参数提示”是否勾选,且当前语言模式必须与xml中language属性一致。

Notepad++ 没有“安装词库”这个操作,所谓“加字典”,本质是往 api.xml 或 userDefinedLang.xml 里手动加 <function></function> 或 <keywords></keywords> 节点,路径、大小写、重启缺一不可。
为什么 Ctrl+Space 没反应?先确认两个开关开了没
补全根本不会启动,如果这两个选项没勾上:启用每个输入的自动完成 和 函数参数提示。它们在 设置 → 首选项 → 自动完成 页面顶部,不是“备份/自动完成”页签——那是旧版路径,已失效。关掉任意一个,Ctrl+Space 就弹不出列表,输 JSON. 也不会提示 parse 或 stringify。
改完立刻生效,但已打开的文件建议按 Ctrl+O 重载一次(不用重启整个 Notepad++)。
python.xml / javascript.xml 放哪?位数和大小写必须严格匹配
Notepad++ 不会自动查找或容错。64 位版要把 python.xml 放到 %PROGRAMFILES%\Notepad++\plugins\APIs\;32 位版则放 %PROGRAMFILES(X86)%\Notepad++\plugins\APIs\。文件名必须全小写,Python.XML、javascript.xml(注意大小写)、python2.xml 都不认。
XML 文件里 <autocomplete language="python"></autocomplete> 的 language 值,必须和你当前文档的语言模式完全一致(右下角状态栏显示的是 Python 还是 Normal text?如果不是前者,点 语言 → Python 手动切过去)。
改完 XML 文件后,必须重启 Notepad++,仅切换标签页或重载文件无效。
自定义语言(UDL)怎么加函数补全?keywords 和 functions 是两套东西
在 语言 → 定义你的语言 里建好 UDL 后,补全行为由两个独立结构控制:
-
<keywords></keywords>节点只影响语法高亮和基础单词补全(且只有 group 1 参与补全) -
<functions><function>myFunc</function></functions>才是Ctrl+Space弹出的函数列表来源 - 两者不能混写:把
<function></function>塞进<keywords></keywords>里,补全不会出现
生成的 userDefinedLang.xml 文件位于 %APPDATA%\Notepad++\userDefineLangs\,编辑后同样需重启生效。
.api 文件和 XML 文件能共存吗?别搞混用途
.api 文件(如 cpp.api)和 api.xml 是两套机制,互不干扰,但用途不同:
-
.api文件放在autoCompletion\目录下,用于前缀匹配式补全(比如输std::弹出vector、string),只对 C++ 等少数语言默认支持 -
api.xml是函数级补全的唯一来源,决定Ctrl+Space列表内容,也决定括号内参数提示是否显示 - 同时存在时,
.api补全优先级低于api.xml,但不会报错或覆盖 —— 它们触发条件不同(前者靠输入前缀,后者靠语言模式 + XML 加载)
最容易被忽略的是:补全是前缀驱动的。parse 单独输不会触发,但 JSON. 或 os.path. 就会。这不是词库漏词,是设计如此。











