如何使用vscode的折叠与展开代码块功能?【教程】
发布时间 - 2026-01-23 00:00:00 点击率:次VS Code代码折叠依赖语言支持、语法结构和设置;语义折叠适用于function/if/class等块,缩进折叠用于Python等;手动标记用#region/#endregion;失效时检查folding设置、语言模式及扩展冲突。
VS Code 的代码折叠功能默认开启,但实际效果取决于语言支持、语法结构和编辑器设置——不是所有代码块都能自动折叠,也不是所有折叠行为都符合直觉。
哪些代码块能被自动折叠?
VS Code 基于语言语法树(Semantic Folding)或行首缩进(Indent-based Folding)判断可折叠区域。不同语言支持程度差异大:
-
function、if、for、while、class、interface等关键字块在 TypeScript/JavaScript、Python、C# 等语言中通常支持语义折叠 - Python 依赖缩进,但 VS Code 默认对
def和class提供折叠,普通缩进块(如连续的print())不会被折叠 - JSON、CSS、HTML 文件支持基于大括号
{}或标签对的折叠,但 HTML 中折叠需启用"html.suggest.html5": true并依赖插件质量 - 注释块(如
/* ... */或// region)需手动标记才能折叠,原生不识别普通多行注释
如何手动标记可折叠区域?
当默认折叠不满足需求时,可用编辑器内置的「折叠区域」指令插入显式标记,这对配置文件、文档注释或逻辑分段特别有用:
- 在代码中插入
// #region和// #endregion(JavaScript/TypeScript/C# 等) - 使用
/* #region Description */和/* #endregion */(支持带描述,折叠后显示该文字) - Python 中可用
# region和# endregion(需确保 Python 扩展启用python.foldingStrategy为indent或auto) - 光标放在空行 → 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac)→ 输入Fold Region→ 回车,自动生成标记
折叠快捷键与鼠标操作失效的常见原因
快捷键没反应,大概率不是键盘问题,而是以下配置或状态干扰:
-
"editor.folding": true被设为false(检查settings.json) - 当前文件语言模式未识别(左下角显示
Plain Text时,折叠基本不可用;点击切换为对应语言如JavaScript) - 安装了冲突扩展,比如某些 LSP 插件禁用了默认折叠逻辑;可尝试禁用非必要扩展后重启
- 鼠标悬停在行号区无「▶」图标 → 表明该行不属于任何可折叠范围,不是 bug,是语言服务未提供折叠信息
- 快捷键
Ctrl+Shift+[/Ctrl+Shift+](Win/Linux)或Cmd+Option+[/Cmd+Option+](Mac)仅作用于当前光标所在折叠层级,不是全局展开/折叠
如何强制刷新折叠状态?
改完代码或设置后折叠没更新,别反复重启编辑器:
- 按
Ctrl+Shift+P→ 输入Developer: Restart Language Server(对 TS/JS/Python 等有效) - 或直接重载窗口:
Ctrl+Shift+P→Developer: Reload Window - 若刚修改了
settings.json中的"editor.foldingStrategy",必须重载窗口才生效 - 注意:设置为
"indent"会忽略语义结构,纯看缩进;设为"auto"(默认)优先用语义,退化到缩进 —— Python 用户常因误设为indent导致def不折叠
折叠不是万能的,尤其在嵌套过深或混合语言(如 JSX、Vue SFC)中,语义解析容易出错。与其纠结某一块为什么折不了,不如先确认语言模式是否正确、扩展是否就位、foldingStrategy 是否匹配当前语言习惯。
# css
# linux
# vue
# javascript
# python
# java
# vscode
# html
# js
# json
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在服务器上配置二级域名建站?
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
*服务器网站为何频现安全漏洞?
网站优化排名时,需要考虑哪些问题呢?
使用spring连接及操作mongodb3.0实例
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Laravel如何创建自定义Artisan命令?(代码示例)
专业商城网站制作公司有哪些,pi商城官网是哪个?
如何正确选择百度移动适配建站域名?
Laravel如何使用Collections进行数据处理?(实用方法示例)
Laravel Session怎么存储_Laravel Session驱动配置详解
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
网站制作软件免费下载安装,有哪些免费下载的软件网站?
如何确保西部建站助手FTP传输的安全性?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何快速配置高效服务器建站软件?
如何在景安云服务器上绑定域名并配置虚拟主机?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Java类加载基本过程详细介绍
JavaScript模板引擎Template.js使用详解
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
Laravel Docker环境搭建教程_Laravel Sail使用指南
Laravel怎么上传文件_Laravel图片上传及存储配置
魔毅自助建站系统:模板定制与SEO优化一键生成指南
桂林网站制作公司有哪些,桂林马拉松怎么报名?
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
微信推文制作网站有哪些,怎么做微信推文,急?
网站制作壁纸教程视频,电脑壁纸网站?
开心动漫网站制作软件下载,十分开心动画为何停播?
中国移动官方网站首页入口 中国移动官网网页登录
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
如何挑选最适合建站的高性能VPS主机?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何在IIS7中新建站点?详细步骤解析
黑客如何通过漏洞一步步攻陷网站服务器?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
如何在 Pandas 中基于一列条件计算另一列的分组均值
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
Laravel Fortify是什么,和Jetstream有什么关系
在Oracle关闭情况下如何修改spfile的参数
香港服务器租用费用高吗?如何避免常见误区?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
七夕网站制作视频,七夕大促活动怎么报名?
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理


