Notepad++的自动换行仅按窗口宽度在分词边界折行,不处理缩进;“保持缩进”是原始空白符的渲染效果,并非编辑器自动补空格;字回绕可在任意字符间断行但不生成换行符,且设置不持久。

自动换行本身不处理缩进,它只管“折行位置”
Notepad++ 的 Word Wrap 功能纯粹是显示层行为:它根据窗口宽度,在空格、制表符、标点等分词边界处折行,**完全不感知缩进逻辑,也不会维持缩进对齐**。所谓“保持缩进”,其实是你误以为它会像 IDE 那样把后续折行行首自动补上空白——它不会。
常见错觉来源:看到 Python 代码中 def foo(): 下面的代码块在折行后仍“对齐”,其实是原始缩进字符(空格或 Tab)被原样渲染到新行开头,不是编辑器主动补的。
- 自动换行生效的前提是:当前未处于列模式(
Alt + C取消)、语言模式没压制(可切到无格式测试)、没有零宽空格(\u200b)等阻断折行的隐藏字符 - 如果某行全是长 URL 或 Base64 字符串(中间无空格),
Word Wrap根本不会折,只能横向滚动——这是设计如此,不是 bug - 想让折行后视觉上“缩进一致”,唯一办法是确保原始行首有足够且统一的空白符(比如全用 4 个空格),否则折行后第二行开头就是裸字符
“字回绕”能解决中文/无空格文本折行,但代价明确
从 v7.9+ 开始,设置 → 首选项 → 编辑器 → 字回绕 允许在任意字符间断行,包括中文单字之间、英文单词中间。这对纯文本、日志、配置项描述类内容有用。
但它和缩进无关,只是让长字符串“看起来被截断了”。启用前必须先打开菜单里的 自动换行,否则无效。
- 开启后大文件(>10MB)可能轻微卡顿,尤其滚动时
- 该设置不保存到会话,每次重启 Notepad++ 都得重开一次
字回绕勾选 - 若你复制折行后的文本到别处(比如邮件、终端),粘贴出来仍是单行原始内容——
字回绕不生成任何新换行符
真正要“保持缩进”,得靠手动或正则预处理
如果你需要的是“每 80 列强制插入换行符并保留缩进”,这不是 Word Wrap 的职责,而是格式化任务。Notepad++ 没有内置的智能软换行+缩进维持功能。
可行路径只有两个:
- 用正则替换硬插入换行:
查找输入^(\s{0,})(.{1,79})\s+,替换为$1$2\r\n(需勾选“正则表达式”和“匹配全部字符”),但会破坏代码结构,慎用于源码 - 批量缩进操作本身是独立功能:选中多行 → 按
Tab加缩进 /Shift + Tab减缩进;缩进单位由首选项 → 编辑器 → 制表符设置控制,建议统一设为4并勾选将制表符替换为空格
容易被忽略的细节:状态不持久,且不随文件保存
每次打开新文件,自动换行 状态都是关闭的——它不记录在文件里,也不继承自上次会话。哪怕你刚在上一个文件里开了,新文件照样横向滚动。
更隐蔽的是:notepad++.exe -nosession 启动时,所有视图设置(包括 自动换行、字回绕、甚至行号显示)都会重置为默认值,毫无商量余地。
如果你依赖自动换行阅读日志或配置,最稳的做法是养成习惯:打开文件后第一件事按 Alt + V 松开再按 W,而不是指望它“记得”。


















