Notepad++默认不启用任何代码自动补全,必须手动勾选“启用每个输入的自动完成”和“函数参数提示”两个核心开关,并确保语言模式正确、API文件(如python.xml)置于对应路径且language属性匹配,修改后需重启生效。

Notepad++ 默认完全不启用任何代码自动补全,所谓“输几个字母就弹出提示”是纯手动配置的结果。没开开关、没放对文件、语言模式错位,三者任一缺失都会导致 for 没反应、console. 不出方法列表。
必须勾选的两个核心开关
补全逻辑由底层触发机制控制,关了它,所有后续配置都无效。
- 打开
设置 → 首选项 → 自动完成 - 务必勾选:
启用每个输入的自动完成(这是总开关,不勾等于没装补全) - 同时勾选:
函数参数提示(影响printf(后弹出参数说明) - 注意:这两个选项不是“可选增强”,而是补全系统运行的前提;改完立即生效,但已打开的文件建议重载(
Ctrl+O再选一次)
补全不生效?先确认语言模式和 API 文件路径
Notepad++ 只在「当前语言模式 + 对应 API 文件存在且加载成功」时才尝试补全。90% 的失灵源于状态栏显示的是 Normal text 而非 Python 或 C++。
- 看右下角状态栏:必须显示为
Python、JavaScript、C++等,不是Normal text;如果不是,点菜单语言 → Python(别选Python (Embedded)) - API 文件(如
python.xml、javascript.xml)必须放在正确路径:
64 位系统:%PROGRAMFILES%\Notepad++\plugins\APIs\
32 位系统:%PROGRAMFILES(X86)%\Notepad++\plugins\APIs\ - 文件名必须全小写,扩展名必须是
.xml;<autocomplete language="python"></autocomplete>中的language值要和你当前语言模式**完全一致**(大小写敏感) - 改完 API 文件或语言设置后,必须重启 Notepad++——仅切换标签页或重载文件无效
想补标准库函数?默认 XML 文件根本不够用
安装包自带的 python.xml 或 javascript.xml 只含 if、function 这类关键字,不含 os.path.join、Array.prototype.map 等真实 API。
- 补全行为依赖 XML 中的
<function></function>节点,不是词库也不是模糊匹配 - 手动编辑对应
.xml文件,在<functions></functions>区块内添加:<function>join</function>(注意按字母序排列,否则可能被跳过) - 更省事的方式:从 GitHub 搜索
notepad-plus-plus-userdefined,找社区维护的更新版python.xml - 自定义语言(UDL)补全需写进
userDefinedLang.xml的<functions></functions>节点,不能塞进<keywords></keywords>里 - 命名空间支持极弱:写
mylib.do_something,补全只认到mylib,点号后内容不会参与匹配
插件冲突和符号自动配对常被混淆
很多人以为括号不自动闭合是补全坏了,其实是功能归属不同、开关独立。
-
括号/引号自动完成是同一设置页下的独立选项(在「自动完成」页面底部),勾选后输入(会立刻补),光标停中间 -
HTML/XML 标签自动关闭藏在设置 → 首选项 → 语言菜单/自动完成,且仅在语言设为HTML或XML时生效 - QuickText、Python Script 等插件常劫持
Tab或Enter键,导致补全菜单弹出却无法选择;临时验证可加命令行参数启动:"C:\Program Files\Notepad++\notepad++.exe" -noPlugin - 别把
.api或.xml文件扔进plugins\目录——那是插件 DLL 的位置,放错路径等于没放
最易忽略的点:补全前缀必须“开头一致”,比如想补 JSON.parse,必须先输入 JSON.(带点),只输 parse 不会命中;而且所有路径、文件名、language 属性值都区分大小写,错一个字符就静默失效。

















