Linux 下 Notepad 系列编辑器的代码折叠实现
一、先确认你用的是哪一款编辑器
- notepad–(C++/Qt,国产跨平台):原生支持语法感知与手动折叠,提供多层级折叠、快捷键与自定义区域等能力。
- Notepad++(Windows 原生,Linux 可用 Wine 运行):内置代码折叠,支持多语言语法折叠。
- Notepad2 / Notepad2-mod(Windows 轻量编辑器,Linux 可用 Wine 运行):Notepad2-mod 明确提供代码折叠功能。
二、notepad-- 在 Linux 上的折叠使用与配置
- 启用与显示
- 确保启用折叠:打开菜单设置 → 格式化配置,在配置中确认CodeFolding → enable_folding=true;必要时将initial_state=expanded设为展开。配置路径(Linux):~/.config/notepad–/format_config.ini。
- 基本操作
- 鼠标:点击行号旁的折叠边距切换;双击代码块起始行折叠整个块;右键“折叠”菜单可执行折叠当前块/全部折叠/折叠到层级 N/展开等。
- 键盘:常用为Ctrl+Alt+[ 折叠当前块]、Ctrl+Alt+] 展开当前块、Ctrl+Shift+[ 全部折叠]、Ctrl+Shift+] 全部展开、Alt+1~Alt+8 折叠到层级 N、Alt+Shift+1~Alt+Shift+8 展开到层级 N;可在设置 → 快捷键管理自定义。
- 自定义折叠区域
- 支持多种注释标记创建可折叠块,例如:
- C# 风格:
// #region 名称 … // #endregion
- Java 风格:
// <editor-fold> … // </editor-fold>
- Vim 风格:
/*{{{*/ … /*}}}*/
- 语言与折叠类型
- 基于 Scintilla 的词法分析器实现语法感知折叠:C/C++(基于 {},支持 #region)、Python(基于缩进)、HTML/XML(基于标签嵌套)、Markdown(基于标题层级)。
三、Notepad++ 在 Linux 上的使用(通过 Wine)
- 折叠入口
- 确保文件类型已正确识别(如 C/C++、HTML、XML 等),随后使用菜单编辑 → 折叠或常用快捷键:Alt+0 折叠所有层次、Alt+Shift+0 展开所有层次、Ctrl+Alt+F 折叠当前层次、Ctrl+Alt+Shift+F 展开当前层次。若快捷键无效,先切换为对应语言模式再尝试。
四、Notepad2 / Notepad2-mod 在 Linux 上的使用(通过 Wine)
- 功能说明
- Notepad2-mod 在 Notepad2 基础上增强,包含代码折叠、书签、自动完成与多语言高亮等;在 Linux 下可通过 Wine 运行并使用折叠相关功能。
五、常见问题与排查
- 文件类型未识别导致不折叠
- 在编辑器内切换到正确的语言模式(如 C/C++、HTML、Python 等),再尝试折叠操作。
- 折叠边距或标记不显示
- 在 notepad– 的格式化配置中确认enable_folding=true,必要时重启编辑器或重新加载文件;检查配置路径 ~/.config/notepad–/format_config.ini 是否生效。