折叠图标不显示需同时开启总开关并确认语言模式:Settings→Preferences→Editor→Code folding必须勾选,且右下角语言名须为Python/C++等编程语言而非Plain text;Python还需单独启用折叠并确保缩进一致、无零宽空格、Smart Highlighting开启;折叠边距线需勾选Draw fold margin line;行号边距必须开启才能显示折叠图标。

折叠图标不出现,先确认总开关和语言模式
折叠线(即行号旁的 + / - 图标)不显示,90% 是因为两个基础设置没到位:一是全局折叠总开关关闭,二是当前文件未被识别为支持折叠的语言。Notepad++ 不会在 Plain text 或 Normal text 模式下加载任何折叠逻辑,哪怕代码写得再规范也没用。
必须同时满足以下条件:
-
Settings → Preferences → Editor → Code folding → Enable code folding必须勾选(这是硬性总开关,不勾则全语言失效) - 右下角状态栏显示的语言名必须是
Python、C++、JavaScript等内置编程语言,不能是Plain text - 对 Python/JS/C++ 等语言,还需进入
Settings → Preferences → Language,单独勾选Enable folding for Python(老版本默认关,新版默认开但别假设)
改完后需重启 Notepad++,仅重载文件或切换语言不生效。
Python 折叠线消失?检查缩进一致性与关键字格式
Python 完全依赖缩进 + 关键字触发折叠点,但规则很机械:def、class、if 等关键字后必须换行,且下一行必须有缩进内容。单行写法如 def foo(): pass 不生成折叠点;if x: print(1) 同样无效。
更隐蔽的问题是缩进混用:
- 打开
View → Show Symbol → Show All Characters,确认没有\t和空格混用 - 统一缩进:进入
Settings → Preferences → Language → Tab settings → Python,勾选Replace by space并设为 4 空格 - 粘贴代码时可能带零宽空格(
\u200B),全选后按Ctrl+H查找\x{200B}替换为空
另外,Smart Highlighting 必须开启(同在 Language 设置页),否则缩进解析不准,折叠线也会漏掉。
折叠边距线(fold margin line)不显示?不是插件问题,是设置路径错了
很多人搜 CustomLineGuides 插件,但该插件早在 2019 年停更,且在 Notepad++ v8.5+ 中完全不可用——装不上、手动丢 DLL 会报 LoadLibrary failed 或直接卡死。这不是你操作问题,是架构不兼容。
Notepad++ 自带的折叠边距线(从 +/- 垂直向下延伸的实线)才是稳定方案:
- 路径是:
Settings → Preferences → Editor → Draw fold margin line(注意不是「辅助线」或「标尺」) - 勾选后重启,左侧会出现连续实线,明确标出每个折叠块范围
- 这条线不依赖语言、不依赖缩进风格,C++/Python/JS 全适用
它只负责视觉延伸,不影响折叠逻辑本身——真正决定“能不能折”的,还是缩进或括号是否合规。
侧边栏没空间显示折叠图标?检查行号边距是否被关闭
即使所有设置都对,如果 View → Margin → Show line number margin 被关闭,折叠图标就无处安放——它默认显示在行号边距区域,而不是独立一列。
这个选项常被误关,尤其在自定义 UI 或使用旧版主题后:
- 务必确认
Show line number margin已启用 - 如果启用了
Show symbol margin(符号边距),它不会显示折叠图标,只有行号边距才承载+/- - 某些高 DPI 缩放场景下,图标可能被压窄成一条细线,可尝试调大字体或关闭缩放补偿
折叠状态本身不持久化,每次重启或重载文件都会回到展开态——这不是 bug,是 Scintilla 底层设计。如果你需要记住折叠位置,说明 Notepad++ 已经不是合适工具了。











