
notepad-- 代码折叠3 步把 5000 行代码收成一页大纲新手也能直接照做【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器目标是做中国人自己的编辑器来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--同样是 3000 行的 C 文件有人逐屏滚了十分钟还没看明白结构你只需要 3 秒钟就能把它收成一份函数目录。这正是 notepad-- 的代码折叠功能在做的事把整份文件按块收起只留下每块的标签行让骨架先于细节出现在你眼前。 开始之前版本notepad-- v3.7.0Windows / Linux / macOS 三个平台都支持配置零配置装好即用文件要求任何有结构的内容都行——C、Python、JSON、XML 都可以下面直接上手。3 步看到效果第 1 步打开一个有嵌套结构的文件随便打开仓库里的 src/cceditor/ccnotepad.cpp或者你自己的任何 C 文件。你应该看到行号列右侧多出一条窄边距上面点缀着一排小方框和-符号。这条边距就是折叠边距每个符号对应一个可收起的代码块。第 2 步单击某个-符号把鼠标移到某个函数定义行旁边的-上点一下。你应该看到整个函数体瞬间消失只剩函数签名那一行-变成了。第 3 步按AltShift8恢复你应该看到刚才收起的所有内容一字不差地回来了。放心折叠只是隐藏不是删除被藏起来的行在查找、替换时依然参与处理。如果边距整个不见了去「视图」菜单勾选显示折叠边距即可。它到底在干什么把文件想象成一摞档案盒每个函数、每个代码块就是一个盒子盒子盖子上贴着标签函数签名盒子里装的是具体实现。折叠 把盒盖扣上你只看标签展开 掀开盖子看内容。notepad-- 的折叠引擎来自 Scintilla 组件工作方式很直白词法分析器逐行扫描文件给每个盒子盖所在的行打上折叠头标记并标注它属于第几层1~8 层。按下快捷键时引擎遍历全文把所有层数等于目标层级的盒子统一扣上或打开。在 src/scintillaeditview.cpp 中它还能自动识别 Python、YAML 这类没有花括号、靠缩进表达结构的语言bool ScintillaEditView::isFoldIndentBased() const { QsciLexer* lexer this-lexer(); if (lexer ! nullptr) { int lexerId lexer-lexerId(); return lexerId L_PYTHON || lexerId L_COFFEESCRIPT || lexerId L_HASKELL || lexerId L_VB || lexerId L_YAML; } return false; }所以同样的Alt2在 C 里收起的是{}块在 Python 里收起的是缩进块——引擎按当前文件的语言规则自动切换策略你不用操心。速查表操作快捷键 / 方式效果折叠到第 1 层Alt1只留最外层函数/类签名文件变目录折叠到第 2 层Alt2收到条件语句一级折叠到第 3~7 层Alt3~Alt7逐级深入折叠到第 8 层Alt8最细粒度几乎每块都收展开到第 1 层AltShift1恢复到只剩最外层展开全部AltShift8还原完整代码无一遗漏折叠/展开单个块单击边距上的-/只影响当前块自定义逻辑分区注释// #region与// #endregion注释之间生成独立折叠头快捷键的默认值注册在 src/shortcutkeymgr.cpp全部可在「设置 → 快捷键管理」中修改。场景组合拳场景一接手陌生项目先按Alt1文件缩成一份函数目录10 秒判断哪些模块值得细读对感兴趣的模块按AltShift2展开一层再看函数体需要精读某段时点边距上的逐个打开其余保持收起场景二重构一个大文件用#region注释把文件按职责切成几个逻辑区例如// #region 解析阶段 void parseLine(const QString line) { /* ... */ } // #endregion // #region 输出阶段 void writeResult() { /* ... */ } // #endregion重构输出阶段时按Alt8收起其他所有区视野里只剩目标代码改完按AltShift8整体恢复检查是否有误伤场景三代码走查 / 排查问题保持Alt2的半折叠状态走查文件结构清晰、滚动距离短直接CtrlF搜索——被折叠隐藏的行同样参与匹配不会看不见就漏掉命中结果定位后按AltShift8展开上下文再细看避坑 QA现象原因解法折叠边距完全看不见边距被隐藏「视图」菜单勾选显示折叠边距某些块没有-符号文件语言没被正确识别词法分析没跑确认「语言」菜单选对了语言类型或关闭重开文件快捷键按了没反应与系统或其他插件快捷键冲突「设置 → 快捷键管理」里修改折叠快捷键折叠后找不到某行内容该行正好被收进了某个块里按AltShift8全部展开再找Python 文件折叠位置和预期不一致缩进类语言按缩进层级折叠不是按括号检查该行缩进是否对齐缩进错乱会直接改变层级✅ 60 秒自测知道折叠边距上-和分别代表什么状态能一键把整份文件折成目录也能一键还原说得清 Python 的折叠依据是缩进而非花括号会在折叠状态下搜索、替换且知道隐藏行不会被漏掉能用#region/#endregion给大文件划分逻辑区知道折叠快捷键在哪修改全部打勾的话这项功能已经长进你的操作习惯里了。notepad-- 是一款目标是做出中国人自己的编辑器的跨平台文本编辑器Windows / Linux / macOS代码折叠只是它能力清单里的一项。想进一步看实现从 src/ 目录入手即可折叠的核心逻辑集中在 src/scintillaeditview.cpp快捷键注册在 src/shortcutkeymgr.cpp。读大文件时记得先让结构开口说话再谈逐行理解。【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器目标是做中国人自己的编辑器来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考