notepad++没有真正自动对齐功能,仅支持基于字符位置的机械对齐;textfx可对齐=和冒号但无视上下文;nppautoindent只响应输入缩进;nppexec调用black/prettier才是符合语言规范的真格式化。

Notepad++ 没有真正意义上的“自动对齐”功能——它不解析语法,不能像 prettier 或 black 那样理解代码结构。所谓“对齐”,只是基于字符位置的机械操作,用错方法反而会让代码更乱。
TextFX 的 = 对齐和冒号对齐能做什么、不能做什么
老版本 Notepad++(7.9.x 及之前)装上 TextFX Characters 插件后,能做两件事:
• TextFX → TextFX Edit → Line up by =:把每行第一个 = 左右对齐,适合 ini、简单赋值语句(如 name = "foo"、age = 25)
• TextFX → TextFX Edit → Align at colon:对齐冒号,适合键值对列表(如 host: localhost、port: 8080)
但这些操作完全不识别上下文:如果某行字符串里含 =(如 url = "https://a=b"),就会切错位置;Python 的 if 块缩进、JSON 的嵌套层级,它一律无视。
NppAutoIndent 插件只管“打字时缩进”,不管“重排全文”
NppAutoIndent(Plugin Admin 可装)解决的是“你敲回车后,新行自动缩进到上一行相同层级”这个具体问题,但它不会帮你把一整段缩进混乱的 Python 代码重新整理。
• 它依赖语言模式(Language → Python)识别缩进符号(:、def、class 等关键词)
• 对非标准语法(比如自定义 DSL、混合注释块)容易失效
• 不支持一键格式化,也没办法修复已存在的缩进错误
如果你刚粘贴了一段从网页复制的代码,NppAutoIndent 不会主动帮你修——它只响应你接下来的输入动作。
用 NppExec 调用 black/prettier 才算真·自动对齐
这才是最接近 IDE 体验的方案,但必须手动配一次:
• 先全局安装格式化工具:pip install black(Python)或 npm install -g prettier(JS/TS/JSON)
• 在 Plugins → Plugin Admin 中装好 NppExec
• Plugins → NppExec → Execute... 输入命令:cmd /c black --line-length 88 "$(FULL_CURRENT_PATH)"
注意:"$(FULL_CURRENT_PATH)" 必须加双引号,否则路径含空格时命令直接失败
• 保存为脚本,再绑定快捷键(Plugins → NppExec → Advanced Options → Menu Item)
这样按快捷键就能原地格式化,且结果和团队其他成员用 CLI 运行 black 一致——不是“看起来对齐”,而是符合语言规范的对齐。
列编辑(Alt+拖选)是唯一可控的手动对齐方式
当外部工具不可用、又必须快速对齐多行变量声明时,Alt + 鼠标拖动 是最可靠的选择:
• 选中要对齐的列区域(比如所有等号前的变量名)
• 松开鼠标后,直接敲空格或 Tab 补齐宽度
• 支持键盘列选:Alt + Shift + ←/→ 微调列宽
• 注意:它不自动计算间距,全靠肉眼判断;若行数多、字段长度差异大,不如先用正则替换统一空格再列编辑
比如先 Ctrl+H 查找 ^(\w+)\s*=\s*(.*)$,替换为 $1 = $2,再列选 = 左侧统一补空格。
Notepad++ 的“语言模式”直接影响所有插件行为**。比如 XML Tools 插件只在 Language → XML 模式下才激活格式化按钮;NppAutoIndent 对 Python 有效,但切换成 Text 模式就停摆。别跳过菜单栏的 Language 选择——这不是装饰,是功能开关。











