Ctrl+Shift+[ 能折注释,但仅限多行注释(如/.../、"""...""")或#region标记块,且需语言模式正确(非Plain Text);单行注释(#、//)本身不可折叠,连续多行需被识别为注释块才可能合并折叠。

Ctrl+Shift+[ 能不能折注释,取决于注释类型和语言模式
多行注释(/* ... */、"""..."""、'''...''')默认可折叠;单行注释(//、#)本身不可折叠,但若连续多行且被识别为“注释块”,部分语言扩展会合并处理。关键前提是:右下角状态栏必须显示正确语言模式(如 JavaScript,不是 Plain Text),否则连折叠图标都不会出现。
常见失效现象:
- 按了
Ctrl+Shift+[没反应 → 光标可能停在单行注释末尾或空行,而非注释起始行(如/*所在行) - 鼠标悬停行号左侧无 ▶ 图标 → 语言未识别,或该注释格式不被当前语言扩展支持(例如
/* #region */在 JS 中无效) - JSON 文件里的
//注释不折叠 →.json默认不支持注释,需用.jsonc后缀并确保启用jsonc语法支持
折叠大段配置或说明文字,优先用 // #region 而不是普通注释
VSCode 对纯注释的折叠能力有限,但对 #region 标记有统一支持——它不依赖注释语义,只认特定格式的注释行。这是最可靠的手动折叠方式。
实操要点:
- JS/TS 写法必须是单行:
// #region API config,不能用/* #region */或换行写 - Python 写法是:
# #region 数据清洗(注意开头是#,后面一个空格,再跟#region) -
#endregion必须独占一行,且大小写严格匹配;漏写会导致其后所有内容无法折叠(不报错,但静默失效) - 区域支持嵌套,但建议不超过 3 层,过深可能触发渲染异常
想一键收起所有注释(含 #region),用 Ctrl+K Ctrl+0
这个组合键触发 editor.foldAll,会递归折叠所有被语言扩展标记为可折叠的节点,包括多行注释块、#region 区域、函数、类等。但它不是“只折注释”,而是全量折叠。
注意事项:
- 必须先松开
Ctrl+K,再按Ctrl+0(不是三键同时按) - 未保存的文件可能不加载语言服务,导致无响应;重载窗口(
Ctrl+Shift+P→Developer: Reload Window)可强制刷新 - 如果
Ctrl+K Ctrl+0后注释还在展开,大概率是editor.foldingStrategy被设为indentation—— 此时折叠只看缩进,忽略注释结构,应改回auto或language-defined
鼠标点折叠箭头比快捷键更稳,尤其对注释边界模糊时
把光标移到注释第一行(如 /* 或 // #region 所在行),鼠标悬停在行号左侧空白处,出现 ▶ 图标后再点击。这种方式不依赖快捷键记忆,也不怕误按,特别适合不确定是否可折叠的场景。
容易被忽略的细节:
- 折叠状态默认不保存:关掉文件再打开,所有注释都会恢复展开 —— 这不是 bug,是 VSCode 设计如此;如需持久化,得装扩展(如
Custom CSS and JS Loader配合脚本) - HTML 中的
<!-- ... -->可折叠,但必须是标准注释,且文档要有完整结构,否则当纯文本处理 - Markdown 的
## 标题折叠需手动开启:"markdown.preview.folding": true,且仅作用于预览模式


















