pycharm中手动折叠代码需用# region和# endregion(python)或// #region(java/js),且必须启用settings > editor > general > code folding中的custom folding regions选项,注释须独占一行、无多余空格,否则不生效。

PyCharm里怎么手动折叠一段代码
PyCharm默认不支持像VS Code那样用// #region和// #endregion来手动标记折叠区域,但可以通过「代码注释折叠」或「自定义折叠区域」两种方式实现。关键在于:必须用PyCharm识别的特定注释格式,且需提前开启对应设置。
- Python文件中,使用
# region和# endregion(注意是#不是//,且中间不能有空格) - Java、JavaScript等语言支持
// #region和// #endregion - 必须在
Settings > Editor > General > Code Folding中勾选Custom folding regions - 折叠后,左侧编辑器边缘会出现
[-]图标;鼠标悬停会显示region后的描述文本(如# region utils)
为什么写了# region还是不折叠
最常见的原因是PyCharm没启用自定义折叠规则,或者注释格式不严格匹配。PyCharm对语法非常敏感——哪怕多一个空格、少一个#,都不会识别。
- 检查是否勾选了
Custom folding regions(路径:Settings > Editor > General > Code Folding) -
# region必须独占一行,后面可跟描述,但不能在同一行写其他代码 - 错误写法:
def foo(): # region helpers→ 不生效 - 正确写法:
# region helpers,下一行开始写代码,再下一行写# endregion - 如果用了中文注释(如
# 区域开始),PyCharm默认不识别,除非自己配置正则表达式(见下一条)
想用中文或自定义关键词折叠怎么办
PyCharm允许用正则表达式定义折叠起始和结束标记,适合团队统一规范或适配已有代码风格。
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
- 打开
Settings > Editor > General > Code Folding > Custom folding regions - 点击
+添加新规则: - Start pattern:
^#\s*begin\s+(.*)$(匹配# begin utils) - End pattern:
^#\s*end\s*$(匹配# end) - 勾选
Case sensitive按需决定是否区分大小写 - 注意:正则中
^和$表示行首行尾,\s*匹配任意空白,避免因缩进失败
折叠后光标跳转或快捷键失效怎么办
PyCharm的折叠逻辑依赖AST解析,某些语法结构(比如未闭合的括号、字符串跨行、语法错误)会导致折叠区域无法正确计算,进而影响Ctrl + .(展开/折叠当前块)或Ctrl + Shift + -(折叠全部)的行为。
- 先检查该代码块是否有语法错误(红色波浪线),修复后再试
- 折叠区域不能嵌套过深(PyCharm对嵌套层数有限制,通常3层以内稳定)
- 如果某段代码始终无法折叠,尝试临时注释掉附近几行,确认是否是上下文干扰
- 重启PyCharm有时能刷新折叠缓存(尤其在修改了正则规则后)
PyCharm的手动折叠不是“写完就自动生效”,它依赖精确的注释格式+显式启用+无语法干扰——三个条件缺一不可。最容易被忽略的是第一行# region必须干净独立,连一个空格都不能错。










