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节 验证快捷键

相关推荐
Joy T9 小时前
voice-dump-to-todo:把混乱的语音整理成可执行待办,一个实用的 Agent Skill
ide·macos·语音识别·xcode·任务管理·自研skill
wangchunyu1149 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
paopaokaka_luck10 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
Thomas.Sir10 小时前
第9课:SpringBoot4.x Web开发基础:WebMvc自动配置、静态资源、请求参数接收
java·spring boot
程序 代码狂人10 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
2501_9445215911 小时前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
人工智能导论实践课12 小时前
【GUI桌面开发3】PyCharm配置外部工具
ide·python·pycharm
南归北隐13 小时前
Spring AI Alibaba Graph框架实现MCP数据库查询实战
java·后端·spring ai·mcp·spring ai mcp
古法老登瞎折腾13 小时前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp
ai大模型-探索者13 小时前
Function Call与MCP(区别、联系与实战)
java·服务器·网络