idea 技巧 region 的使用

第一章 前言概述

第01节 介绍

Region 是 IntelliJ IDEA 提供的一种自定义代码折叠区域

你可以通过特定的注释标记,将一段代码包裹起来,使其在编辑器中可折叠/展开,从而隐藏不关心的细节,聚焦核心逻辑。

注意事项

  • Region 标记不会影响代码编译或运行,它们只是 IDE 的辅助注释。
  • 不同语言对 region 的支持程度略有差异,但主流语言均已支持。

使用场景

  1. 大型类分组:将字段、构造器、公共方法、私有方法分别放入不同 region,快速定位。
  2. 测试代码:将 Given-When-Then 结构用 region 包裹,提升可读性。
  3. 配置文件:在 XML 或 YAML 中使用 region 标记,折叠不常用的配置块。
  4. 多版本代码:用 region 包裹实验性代码,方便临时隐藏/显示。

第02节 格式

复制代码
//region 区域名称   
你的代码...   
//endregion

不同的语言,格式略有差别

语言 注释格式示例
Java // region 初始化 ... // endregion
Kotlin //region 初始化 ... //endregion
Python # region 初始化 ... # endregion
JavaScript // region 初始化 ... // endregion
TypeScript // region 初始化 ... // endregion
C/C++ // region 初始化 ... // endregion
Go // region 初始化 ... // endregion
XML <!-- region 初始化 --> ... <!-- endregion -->

部分语言(如 Python)可能需要在注释后加空格,格式为 # region

第二章 案例代码

第01节 在idea当中的Java代码

java 复制代码
package com.study;

public class Test {

    public static void main(String[] args) {
        //region 咏柳
        // -------------------------------------------------------------
        System.out.println("碧玉妆成一树高,万条垂下绿丝绦。");
        System.out.println("不知细叶谁裁出,二月春风似剪刀。");
        // -------------------------------------------------------------
        //endregion

        // region 晓出净慈寺送林子方
        // -------------------------------------------------------------
        System.out.println("毕竟西湖六月中, 风光不与四时同");
        System.out.println("接天莲叶无穷碧, 映日荷花别样红");
        // -------------------------------------------------------------
        // endregion

        // region 山行
        // -------------------------------------------------------------
        System.out.println("远上寒山石径斜,白云生处有人家。");
        System.out.println("停车坐爱枫林晚,霜叶红于二月花。");
        // -------------------------------------------------------------
        // endregion

        // region 江雪
        // -------------------------------------------------------------
        System.out.println("千山鸟飞绝,万径人踪灭。");
        System.out.println("孤舟蓑笠翁,独钓寒江雪。");
        // -------------------------------------------------------------
        // endregion
    }
}

不会影响整体的运行

复制代码
不知细叶谁裁出,二月春风似剪刀。
毕竟西湖六月中, 风光不与四时同
接天莲叶无穷碧, 映日荷花别样红
远上寒山石径斜,白云生处有人家。
停车坐爱枫林晚,霜叶红于二月花。
千山鸟飞绝,万径人踪灭。
孤舟蓑笠翁,独钓寒江雪。

他可以折叠代码的效果

第02节 操作的好处

提升代码的可阅读性。针对屎山堆砌的代码,结构化拆解。

隐藏实现细节,关注点核心重点内容。

第三章 自定义快捷键 增加 live Templates

第01节 操作目的

为了每次快速生成代码,不想每次都输入大量的注释重复的内容(如 横线)

我们可以使用 IDEA 自带的自定义快捷键。 live Templates 快速生成想要添加的内容。

第02节 创建活动面板组

操作方式

复制代码
1、 打开【设置】 ---> 选择 【Editor】 ----> 选择活动面板【Live Templates】
2、 点击 "+" 号, 添加 Template Group... 活动面板组

方便于将自己定义的快捷键, 进行统一管理。

第03节 创建活动面板

操作方式

复制代码
1、 点击自己新建的活动面板组,例如: MyChuanGe
2、 点击 "+" 号, 添加 Live Template 活动面板

添加自己指定的快捷键

第04节 添加自定义快捷键

效果图

详细说明

复制代码
图标1 对应的区域:
	说明: 这部分内容是, 我们输入的快捷键模板按键
	例如: 在这里我输入的内容是  chcregionstart  那么我在代码当中, 输入这段字符串的时候, 就会提示快速生成代码
	
图标2 对应的区域:
	说明: 这部分内容是, 我们输入的快捷键模板按键 给出的提示信息
	例如: 在这里我输入的内容是  chcregionstart  那么我在代码当中, 输入这段字符串的时候, 就会提示 当前操作的对话框提示快捷键描述
	
图标3 对应的区域:
	说明: 这部分内容是, 我们输入的快捷键模板按键 给出的模板信息, 将会生成什么样子的代码
	例如: 在这里我输入的内容是  chcregionstart  那么我在代码当中, 将会自动生成下面的代码。 (注意: $user$ 将会作为变量使用)
	
图标4 对应的区域:
	说明: 这部分内容是, 我们输入的快捷键模板按键 给出的模板信息当中的变量参数, 赋值具体的内容
	例如: 在这里我输入的内容是  $user$  那么我在代码当中, 对这个 user 值进行具体的赋值操作。他可以是方法名称, 类名称, 时间等
	
图标5 对应的区域:
	说明: 这部分内容是, 我们输入的快捷键模板按键 所处的语言环境, 如: Java、Kotlin、xml 等相关的语言
	解释: 只有在对应的语言环境当中, 按下快捷键, 才会生效。

第05节 变量详细说明

前面我们在上图当中,输入的内容如下:

复制代码
//region $user$
//-------------------------------------------

在这里,我们引入了变量 user, 只要被 $ 包裹的内容,就是引入的变量。

当我们引入变量之后,我们需要在 Edit Variables 当中进行变量的配置,指明当前变量,使用依据是什么。

详细说明一下 Edit Variables

第06节 验证快捷键

相关推荐
CHANG_THE_WORLD1 小时前
逐层拆解:C++ 虚函数从对象内存到手工调用的完整过程
java·开发语言·c++
我登哥MVP1 小时前
走进 Gang of Four 设计模式:过滤器模式
java·设计模式·过滤器模式
吃饱了得干活2 小时前
实时弹幕应该怎么搞?一篇带你从入门到生产级实战
java·后端
热爱生活的五柒2 小时前
如何快速删除vscode项目下所有的http链接
ide·vscode·编辑器
tianyuanwo2 小时前
深入掌握 java -jar 命令:从基础到 Jenkins Agent 实战
java·jenkins·jar
Full Stack Developme2 小时前
MyBatis-Plus(MP)AST 抽象语法树 设计原理
java·tomcat·mybatis
宠友信息2 小时前
消息撤回与已读状态如何在即时通讯源码中统一管理
java·spring boot·websocket·mysql·uni-app
小小放舟、2 小时前
Windows 本地安装 Elasticsearch 8.10.0 与 IK 分词器(2026)
java·大数据·windows·spring boot·elasticsearch·搜索引擎·全文检索
zzz_23682 小时前
【Java实习面试算法冲刺】总复盘
java·算法·面试