notepad++ 不支持语义化代码自动对齐,仅能通过插件(如align)进行基于正则的机械对齐,或借助nppexec调用black/prettier等原生格式化工具实现真正自动化排版。

Notepad++ 本身不支持代码自动对齐,必须靠插件或外部工具
别指望菜单里点一下就自动重排 Python 或 JSON——Notepad++ 没 AST 解析能力,所有“对齐”都是机械式操作。你看到的缩进、等号对齐、括号换行,全是基于字符位置或简单规则,不是语义理解。想靠它处理 def foo(a=1, b=2, long_param_name="value"): 这种参数对齐?不可能。
TextFX 和 Align 插件怎么选:旧版用 TextFX,新版直接装 Align
TextFX 的 Line up by = 功能只在 v7.9.x 及更早版本可用,v8.0+ 默认不加载,手动放 DLL 极易失败。新版推荐直接从 Plugin Admin 安装 Align 插件:
- 安装后菜单路径:
Plugins → Align → Align by regex - 正则填
=(?!\s*=)可避开==、!=等误匹配 - 勾选
Pad left补空格到等号左侧;若想用 Tab 对齐,先去Settings → Preferences → Language → Tab settings设好 Tab 宽度并勾选Replace by space - 注意:它只对齐,不清理尾部空格——对齐完记得用
Edit → Blank Operations → Trim Trailing Space
NppExec 调用 black/prettier 才是真正可靠的自动化排版
如果你写的是 Python、JavaScript、TypeScript 或 JSON,靠插件对齐只是临时凑合。真实项目该用语言原生格式化器:
-
pip install black或npm install -g prettier - 通过 Plugin Admin 安装
NppExec插件 - 运行命令示例:
cmd /c black --line-length 88 "$(FULL_CURRENT_PATH)"(注意双引号包裹路径,否则含空格会失败) - 保存为脚本后,绑定快捷键:
Plugins → NppExec → Advanced Options → Menu Item - JSON 用户可改用
prettier --write --parser json "$(FULL_CURRENT_PATH)",比内置Ctrl+Shift+F更稳
Reindent 和 Smart Indent 都不是“一键排版”,别被名字误导
Reindent(插件菜单里)只是按当前语言规则重算每行缩进量,不改结构、不拆长行、不修复嵌套错误。而 Smart Indent(来自 NppAutoIndent)只在行尾是 {、[、( 或 : 时回车才缩进——def func(): 后回车不会缩,得手动按 Tab 或 Ctrl+I。
最常被忽略的一点:所有这些行为都依赖右下角显示的语言模式是否正确。Python 文件被识别成 Normal text,那 Reindent 就只会按空格数硬算,根本不管 if 块该缩几层。











