Notepad++ 自带括号自动插入需在 Settings > Preferences > Auto-Insert 中启用,仅支持基础配对(()、[]、{}等),不处理嵌套;真正智能补全须安装 XBrackets Lite 插件并勾选“Even if corresponding right bracket exists”选项。

Notepad++ 默认不自动补全括号,必须手动启用对应功能或安装插件;原生的 Auto-Insert 只能补单层、不处理嵌套,真要写代码(尤其是 Python/JS/C++),得靠 XBrackets Lite 插件。
怎么打开 Notepad++ 自带的括号自动插入?
这不是在「自动完成」页里设的,而是在 Settings > Preferences > Auto-Insert。很多人翻遍「Auto-completion」找不到,就是因为路径错了。
-
Auto-Insert开关默认关闭,必须手动勾选才能生效 - 它只管输入
(就加)、输"就加"这类动作,不看语言、不弹提示、不补函数 - 支持的配对硬编码死:
()、[]、{}、""、''、``,不能增删,也不能开/关其中某一对 - 光标必须在普通编辑状态——列编辑(Alt+拖拽)、多选、只读文档下完全不触发
为什么输 print( 后再输 ( 不补第二个 )?
因为原生 Auto-Insert 没有嵌套逻辑:它检测到当前行已有右括号(比如 print() 末尾的 )),就认为“配对已完成”,不再补。结果你写 print(func()) 时,中间那个 () 的右括号得自己敲两次。
- 典型现象:
if (x > 0) { return (x * 2); }—— 第二个(后光标停在括号里,但没自动补) - 这不是 bug,是设计限制:它只做“插入右符”,不做“上下文感知”
- 如果你常写多层嵌套、链式调用或模板字符串,这个功能基本等于摆设
怎么让括号真正智能补全(含嵌套、跳过已有右符)?
装 XBrackets Lite 插件。它不是锦上添花,而是解决原生功能根本性缺失的唯一靠谱方案。
- 安装路径:
Plugins > Plugin Manager > Show Plugin Manager > 找 XBrackets Lite > 勾选安装,需联网,安装后必须重启 - 关键设置在
Plugins > XBrackets Lite > Options,务必勾选Even if corresponding right bracket exists,否则嵌套照样不补 - 它支持自定义配对,比如加
或/* */(需手动编辑配置文件,非界面操作) - 比原生多一个视觉反馈:匹配括号高亮,错位时会标红未闭合的左符
自动补全和括号补全是两套系统,别混着配
很多人开了 Auto-completion 里的「启用每个输入的自动完成」,以为括号也能跟着好使——其实完全无关。前者管函数名、变量名提示,后者管符号插入,底层互不调用。
-
Auto-completion页的开关只影响printf输到pri弹列表、std::后出成员这种行为 -
Auto-Insert和XBrackets Lite都不依赖语言模式,哪怕当前是Normal text也能补括号 - API 文件(如
python.xml)放对了、语言设对了,只让函数提示生效,对括号补全零影响
真正容易被忽略的是:XBrackets Lite 安装后必须重启,且它的「Even if...」选项默认不勾,不手动点一下,嵌套括号永远补不上。


















