跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

VSCode怎么折叠代码_VSCode代码块折叠展开与快捷键操作方法

Ctrl+Shift+[ 折叠光标所在区域,需将光标置于 function/if/def/{ 等语法起始行才生效;Ctrl+K Ctrl+0 可折叠全部可识别结构,但依赖语言模式正确及 foldingStrategy 设置;#region 折叠需对应语言扩展支持且格式规范。 Ctrl+Shift+[ 折叠当前光标所在代码块,但光标位置很关键 这个快捷键不是“随便按一下就折”,它会从光标所在行向上查找最近的可折叠节点(比如
function
、
if
、
class
、
{
开头行),然后折叠整个结构体。如果光标落在空行、单行注释、字符串内部或缩进不一致的 Python 行上,大概率没反应。 常见错误现象:
def my_func():
这行明明有函数声明,按了
Ctrl+Shift+[
却只折了一行——其实是光标没落在该行,而是卡在下一行空行或注释里。 必须把光标放在有语法意义的起始行:如
function
、
for
、
if
、
{
、
class
所在行,或 Python 中
def
/
if
的缩进首行 JSX 或 Vue SFC 中的
{}
内联表达式默认不被识别,需装对应语言插件并确认其提供了
foldingProvider
鼠标悬停在行号左侧出现 ▶ 时再按快捷键,成功率更高;没图标基本说明 VSCode 没识别出可折叠结构 Ctrl+K Ctrl+0 折叠全部,但不是所有代码都会被收起来 这个操作只作用于语言扩展明确标记为“可折叠”的结构,比如函数体、类定义、带
{}
的语句块、HTML 标签对。它不会折叠纯文本、空行、单行注释,也不会强制按缩进收起 Python 的 if 分支——除非你手动设过
"editor.foldingStrategy": "indentation"
。 常见错误现象:Python 文件里按了
Ctrl+K Ctrl+0
,结果只有
class
被折,
def
函数体还在展开状态——这通常是因为 Python 扩展的
foldingProvider
默认只识别
class
和模块级
if __name__ == "__main__"
,而普通函数需依赖缩进策略。 检查右下角语言模式是否正确(例如显示
Python
而非
Plain Text
) 在设置中搜
foldingStrategy
,Python 推荐设为
indentation
;JS/TS 等建议保持
auto
Ctrl+K Ctrl+0
是两步:先按住
Ctrl+K
松开,再立刻按
Ctrl+0
(数字零,不是字母 O);Mac 用户注意是
Cmd+K
松开后再按
Cmd+0
某些插件(如 Prettier、Ember CLI)会劫持
Ctrl+K
前缀,可在
keybindings.json
中搜索
editor.foldAll
确认绑定是否被覆盖 #region 注释折叠需要语言扩展支持,不能随便写 VSCode 不是看到
#region
就自动折叠,它依赖当前语言扩展是否实现了对这种标记的解析。JS/TS 默认支持
// #region
和
// #endregion
;Python 官方扩展也支持,但必须用
#
开头、且不能混用
/* #region */
这类多行变体。 VSCode 1.118 微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。 下载 常见错误现象:写了
// #region utils
却没出现折叠图标——大概率是文件没被识别为 JS/TS,或者扩展未加载(比如 .js 文件被误设为 Plain Text)。 确保右下角语言模式正确,例如 JavaScript、TypeScript、Python(不是 “JavaScript React” 或 “JSON with Comments”) 不要写
/* #region */
或
/* #region ... #endregion */
,VSCode 只识别单行注释开头的
#region
嵌套最多支持 5 层,再深可能触发渲染异常或折叠失效 折叠状态默认不保存,关掉文件再打开就恢复展开;如需记住,得装扩展(如 “Auto Save Folding State”)或启用
"workbench.editor.restoreViewState": true
Ctrl+K Ctrl+J 展开全部,但它不等于“还原原始状态” 这个命令只会把当前已折叠的层级展开,不会去碰那些本来就没被折叠的代码。比如你手动用
Ctrl+Shift+[
折了第 3 层 if 块,又用
Ctrl+K Ctrl+0
折了第 1 层 class,此时
Ctrl+K Ctrl+J
会同时展开 class 和 if,但如果你之前跳过某段没动过,它就永远保持原样。 没有内置的“一键回到最初打开时的折叠状态”功能。所谓“展开全部”,只是“展开所有已被折叠的部分”,不是“重置所有折叠”。 大型文件中频繁使用
Ctrl+K Ctrl+J
可能导致光标跳到文件顶部,因为视图重排;建议配合
Ctrl+Home
快速回位 HTML 文件里它能折叠/展开标签对,但若文档缺失
根节点,可能退化为纯文本处理,折叠失效 JSON 文件默认不支持语法级折叠,除非设
foldingStrategy
为
indentation
,否则
Ctrl+K Ctrl+J
对
{}
或
[]
无响应 折叠逻辑高度依赖语言扩展实现和设置组合,同一份代码在不同配置下表现可能完全不同。最常被忽略的是
foldingStrategy
和语言模式识别——这两项不出问题,其他快捷键才真正可靠。

相关文章