notepad-- 代码折叠实战:3 个阅读动作,把 3000 行 C++ 压成 30 行签名目录

发布时间:2026/9/17 17:58:16
notepad-- 代码折叠实战:3 个阅读动作,把 3000 行 C++ 压成 30 行签名目录 notepad-- 代码折叠实战3 个阅读动作把 3000 行 C 压成 30 行签名目录【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器目标是做中国人自己的编辑器来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--周三 23:40你接手一份 3000 行的 C 文件光标在嵌套的花括号里绕了二十分钟还是没找到目标函数。不是代码难是屏幕太满。notepad-- 的代码折叠能把整份文件收成一行行函数签名Alt1一下3000 行变 30 行结构清清楚楚。零配置跑通20 秒打开第一个折叠别配任何东西你现在就能让它工作。打开任意带结构的文件C、Python、JSON 均可跟着这个循环走看左侧行号右边那条窄边距上面有一排小减号——那是折叠开关不是装饰单击某个减号整块函数体立刻消失只剩一行签名再点旁边的加号内容原样回来在边距空白处点右键选「全部折叠」整个文件收缩成一排签名像一页目录按AltShift8目录重新展开成完整代码一个字节没少。代码折叠层级原理两把钥匙开两种锁 同一个Alt2在 C 里收的是花括号块在 Python 里收的却是缩进块——它凭什么分得清因为折叠引擎手里有两把钥匙结构锁和缩进锁。C、Java、Go 这类有{}的语言用结构锁每个左花括号被词法分析器登记成一个带层级编号的折叠头Python、YAML 这些没有花括号的语言用缩进锁层级完全靠缩进深度推算。打开文件时引擎先确认这份文件用哪把锁源码 src/scintillaeditview.cpp 里的判定就这五行int lexerId lexer-lexerId(); return lexerId L_PYTHON || lexerId L_COFFEESCRIPT || lexerId L_HASKELL || lexerId L_VB || lexerId L_YAML;命中列表就走缩进锁的折叠流程否则走结构锁。所以同一组快捷键在两种语言里锁的东西不同你不需要、也没法手动切换——它看语言自动换钥匙。按阅读阶段折叠扫全局、锁区域、读细节把 8 个快捷键逐个背下来是下策跟着阅读动作记才上脑。你读代码只干三件事每件对应一组按键阶段按键看到的效果扫全局Alt1只剩最外层的函数/类签名几千行缩成几十行扫全局Alt2多露出一层条件块、循环体的签名也出现锁定区域单击边距的只展开你点的那个块其余保持折叠读细节AltShift3~AltShift8从当前目录逐层放开直到目标深度全展开肌肉记忆路线就一句话Alt1看骨架点开目标AltShiftN放到肉。底层调用链很短快捷键在 src/shortcutkeymgr.cpp 注册触发后经由CCNotePad::doFold()转到ScintillaEditView::collapse()。后者对文档只做一次遍历把命中层级的折叠头统一展开或收起所以十万行的文件也是毫秒级完成。用注释重写文件目录自定义折叠块语言自带的结构不够分块用注释自己画。C/C 等语言里词法分析器认得#region/#endregion这对标记// #region 数据处理模块 void processData() { // 两百行复杂逻辑 } // #endregion // #region 渲染模块 void renderUI() { } // #endregion边距上会多出两个专属折叠符号从此这两个模块是随时可收起、可展开的独立单元不再是谁都不看的路标。补一句容易踩的点折叠不影响查找替换——被隐藏的行照样参与全局搜索和替换看不见的行不会被漏掉。折叠翻车现场与秒级修复 四个高频翻车点每个都有 10 秒解法现象根因修复边距上找不到折叠符号折叠边距被关掉了菜单「视图」勾上显示折叠边距某些文件没有折叠语言没被正确识别关掉重新打开或手动指定文件语言按了快捷键没反应按键被别的操作占用「设置 快捷键管理」里重置折叠项折叠后以为代码丢了折叠只是隐藏不是删除按AltShift8一键全部恢复30 秒自检与下一步合上文档前用三句话给自己交个底如果你能在不滚动鼠标的情况下说出当前文件有哪些函数说明扫全局已经成了你的本能如果你能在折叠状态下改完一行代码再做全局替换且没漏行说明你真正理解了折叠只是隐藏如果你能给一份 2000 行的文件画出#region模块边界说明你已从用折叠进阶到用折叠组织代码。想看得更深直接翻 src/scintillaeditview.cpp 里collapse()的实现整个折叠引擎不过百来行。notepad-- 是一款支持 Windows / Linux / macOS 的国产跨平台文本编辑器目标是做出中国人自己的编辑器。折叠相关核心实现见 src/scintillaeditview.cpp 与 src/shortcutkeymgr.cpp。文档版本v3.7.0 最后更新2026-09-15【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器目标是做中国人自己的编辑器来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考