notepad++批量缩进仅对选中多行生效,按tab加一个缩进单位、shift+tab减一个,属纯机械操作不解析语法;需确保选区正确、语言模式匹配、tab/空格设置统一,否则易出现错位或无响应。

Tab 和 Shift+Tab 只对选中行生效,单光标按 Tab 不会批量缩进
Notepad++ 的缩进是纯机械操作,不分析语法结构。选中多行后按 Tab,每行前统一加一个缩进单位;按 Shift + Tab 则统一减一个。没选中任何内容时,Tab 只在当前行插入制表符或空格,不是“缩进整段”。
常见错误现象:
- 按了
Tab没反应 → 实际上没选中任何文本,光标孤零零停在某行开头 - 部分行缩进了,部分没动 → 选区里混入了空行或含不可见控制符(比如
\r\n和\n混用),建议先执行Edit → Blank Operations → Trim Trailing Space - 缩进后错位严重 → 很可能混用了
Tab和空格,或右下角语言模式识别错误(比如 Python 文件被当成Normal text)
缩进单位不对?去「首选项 → 编辑器 → 制表符设置」调
缩进效果取决于两个关键配置是否一致:Replace by space 是否勾选,以及 Tab size 和 Indent size 是否设为相同值。默认常为 4,但粘贴来的代码可能是 2 或 8,视觉上就打架。
实操建议:
- 勾选
Replace by space→ 强制用空格缩进,避免跨平台显示差异 - 把
Tab size和Indent size都设成相同值(推荐4) - 改完后已打开的文件不会自动重绘缩进,需手动选中再按一次
Tab/Shift + Tab刷新
Ctrl+L 对齐是纯文本对齐,不是代码格式化
Ctrl + L 打开的是“对齐”对话框,提供向左、向右、居中、两端四种对齐方式,并支持填入缩进量(正数右缩进,负数左缩进)。它只调整行首空白,不碰括号、换行、语句结构,也不识别语言上下文。
使用场景有限:
- 整理日志中带时间戳的纯文本块
- 对齐 CSV 数据的列头(配合列编辑更准)
- 临时美化说明性文字,比如 README 片段
别指望它修复 Python 缩进错误或让 JSON 变可读——那是 Ctrl + Shift + F(JSON)或 XML Tools → Pretty Print(XML)的事。
右下角语言模式决定缩进行为是否“合理”
Notepad++ 所有缩进行为都依赖右下角的语言识别。比如 Python 模式下,Ctrl + I 会对 def、if 后的下一行做单行缩进;而 Normal text 模式下,这个快捷键就只是插空格。
容易被忽略的点:
- 新建文件默认是
Normal text,写 Python 前务必手动点右下角切换成Python - 文件扩展名没匹配到语言(比如
.cfg或无后缀),得手动选;否则NppAutoIndent插件的Smart Indent就只认{、[、(、:这几个字符,不管def后该不该缩 - 插件如
NppAutoIndent安装路径必须是%ProgramFiles%\Notepad++\plugins\NppAutoIndent\NppAutoIndent.dll,放错位置就失效











