IntelliJ IDEA快速入门 | 第三十篇:如何来自定义模板呢?
写在前面
演示完常用的模板以后,下面咱们来说下一个问题,即我们如何来修改现有的模板,以及如何去自定义一个模板。其实,这说明了IntelliJ IDEA给了我们很大的灵活空间,就像大家用这个苹果手机一样,你感觉这个手机用的不错,这个体验其实主要还是来自于你手机上的各个App应用,而这些App应用,不是全部都是苹果公司自己写的,还有很多第三方的,因此你可以通过更多的第三方的App应用来增强你的用户体验。就好比是我们可以修改或者自定义模板一样,让我们的用户体验变得更好,对咱们程序员来说,这不是更加灵活一些了吗?
咱们就以main方法为例来说,习惯于用Eclipse的小伙伴都适应了写上main
这样几个字符来调出main方法,现在切换到IntelliJ IDEA中突然改成了使用psvm
模板,多少感觉有点不太适应,这时,你就需要修改psvm
模板了,或者再重新自定义一个main
模板。其实,main
模板也不用我们自个儿重新自定义了,因为Editor > Live Templates
这儿已经为我们提供了,虽然如此,但说是这样说的。
接下来,我会新建一个类,例如TemplatesTest1,来教大家如何修改现有的模板,以及如何去自定义一个模板。
修改现有的模板
如果我现在想要定义一个公共的静态的int类型的常量,那么是不是可以使用psfi
模板啊?就像下面这样子。
虽然使用该模板帮我们生成了public static final int
这些东东,方便了我们许多,但是我们还得在其后面写上NUM = 1
这样的玩意,感觉还不够方便,那我们是不是可以考虑再修改一下psfi
模板啊?
先不谈如何修改,而是问大家一个小问题,现在我想要修改psfi
模板,你说我是去Editor > Live Templates
这儿修改,还是去Editor > General > Postfix Completion
这儿修改呢?其实答案就在我上一篇文章中,在上一篇文章中虽然我说了大家不用刻意去记,但是这个说的不是让你去记住每一个模板都在哪里,说了你也记不住,而是想让大家记住模板所在的两个位置之间的区别,即Editor > Live Templates
这里面的模板是可以修改的,而Editor > General > Postfix Completion
这里面的模板是不可以修改的。所以,现在我们想要修改的psfi
模板一定是在Editor > Live Templates
这里面,而不可能是在Editor > General > Postfix Completion
这里面。
要想修改psfi
模板,你就得先找到它的位置,从上图中我们能看到对psfi
模板的一个描述,以及其生成的代码片段。此时,不妨我们修改一下psfi
模板所生成的代码片段,如下图所示。
修改好之后,点击OK
按钮即可。那现在使用psfi
模板,效果会是什么样子的呢?
大家现在看到了这个效果没有啊?当我们写完psfi
这样几个字符一回车,你会发现这时光标会自动地落在$VAR1$
这个位置上,这是让我们写上一个变量名,例如COUNT,然后再回车,发现光标又自动地落在了$VAR2$
这个位置上,这是让我们为变量赋一个值,接着再回车,发现光标又自动地落在了$END$
这个位置上,即一行最开始的位置。这样,与没有修改之前的psfi
模板相比,现在的用户体验是不是要稍微好那么一点点呢?就是省得咱们自己再去写赋值符号了,仅此而已哟~
以上就是如何来修改一个现有的模板。说完修改,下面我们再来说一下如何自定义一个模板,这个才是本文的重点。
自定义一个模板
除了修改现有的模板之外,我们还可以定义自己的模板,接下来,我们就来说说如何定义自己的模板。
定义自己的模板,毫无疑问,仍然也是得在Editor > Live Templates
这里面去定义,而不可能是在Editor > General > Postfix Completion
这里面去定义,因为此处是不可修改的。
我们现在知道了是要在Editor > Live Templates
这里面去定义自己的模板了,但是现在有一个小问题,我们都知道平时咱们常用的那些模板都是定义在Java
这个组里面的,如下图所示,那咱们自己定义的模板可不可以也归档到该组里面去呢?显然是可以的,只不过是混为一团了而已。
因此,最好还是不要用IntelliJ IDEA人家提供的组,我们可以自己来添加一个组,再在我们自己的组里面定义咱们自己的模板。
那如何来添加一个组呢?首先进入到Editor > Live Templates
界面中,然后点击+
号,这时就会弹出一个下拉列表了,如下图所示。
接着,点击以上下拉列表中的第二个选项,即2.Template Group...
,这时就会弹出如下这样一个对话框了,这是在告诉我们添加一个模板组,不妨这儿就将新添加的模板组取名为custom
,如下图所示。
紧接着,点击OK
按钮。这时,你就能看到新添加的custom
模板组了,如下图所示。
接下来,我们就要在以上custom
模板组中去添加我们自己的模板了。
现在我想要定义一个test
模板,定义好了之后,只要我在类中写上test
这样几个字符然后一回车,就能调出如下这样的代码片段,即生成测试方法。
public void test() {}
OK,那怎么定义这样的一个test
模板呢?首先,选中刚刚新添加的custom
模板组并点击+
号,然后在弹出的下拉列表中选中第一项,即1.Live Template
,如下图所示。
这时,你就可以自定义你自己的模板了,如下图所示。
- 标注1:模板的缩略名称
- 标注2:模板的描述
- 标注3:模板的代码片段
可以看到我们将test
模板生成的代码片段写成了下面这样,这也就是说,当我们写完test
这几个字符一回车,调出这样一个代码片段之后,光标会首先落在$VAR1$
位置上,写完测试方法的具体名称之后,再一回车,光标就会落在$VAR2$
位置上了。
public void test$VAR1$() {$VAR2$
}
这样是不是就完了呢?不是的,我们还得指明以上test
模板的应用范围。看到Editor > Live Templates
界面底部的Define
没有,点一下它,这时会弹出一个框框,如下图所示。
哇哦
IntelliJ IDEA快速入门 | 第三十篇:如何来自定义模板呢?相关推荐
- IntelliJ IDEA快速入门 | 第三十一篇:在IntelliJ IDEA 2020.3.3中添加Tomcat镜像并部署Web工程
写在前面 讲完模板以后,咱们来说一下如何在IntelliJ IDEA当中去创建Java Web的工程.这里,我们主要分两种情况来讲,第一种是如何创建静态的Java Web工程,另外一种是如何创建动态的 ...
- IntelliJ IDEA快速入门 | 第三十三篇:在IntelliJ IDEA中如何进行断点调试呢?
断点调试是程序员的一个基本技能,有多重要不用我再说了吧
- AutoCAD快速入门(三十):打印
窗口打印是使用频率较高的打印操作,打印方式十分灵活,用户可以使用框选来指定打印区域. 1.单击顶部快速访问工具栏的"打印"按钮. 2.在"打印机/绘图仪"的下拉 ...
- 5加载stm32 keil_快速入门STM32单片机-软件篇
关于这个STM32的编程开发环境Keil,网上有太多相关的资源了,而且大都讲解的非常详细.所以本篇文章无意于深入细节,只会提供我学习时候的一些体会,帮助你更好的掌握相关知识. 1.标准外设库(Stan ...
- 教你从0到1搭建秒杀系统-Canal快速入门(番外篇)
Canal用途很广,并且上手非常简单,小伙伴们在平时完成公司的需求时,很有可能会用到.本篇介绍一下数据库中间件Canal的使用. 很多时候为了缩短调用延时,我们会对部分接口数据加入了缓存.一旦这些数据 ...
- 带你快速入门AXI4总线--AXI4-Stream篇(1)----AXI4-Stream总线
写在前面 随着对XILINX器件使用的深入,发现越来越多的IP都选配了AXI4的接口.这使得只要学会了AXI4总线的使用,基本上就能对XILINX IP的使用做到简单的上手.所以学会AXI4总线,对X ...
- 带你快速入门AXI4总线--AXI4-Full篇(3)----XILINX AXI4-Full接口IP源码仿真分析(Master接口)
写在前面 接slave接口篇,本文继续打包一个AXI4-Full-Master接口的IP,学习下源码,再仿真看看波形. 带你快速入门AXI4总线--AXI4-Full篇(2)----XILINX AX ...
- 带你快速入门AXI4总线--AXI4-Full篇(1)----AXI4-Full总线
写在前面 AXI4系列链接:带你快速入门AXI4总线--汇总篇(直达链接) 1.什么是AXI4-Full? AXI 表示 Advanced eXtensible Interface(高级可扩展接口), ...
- Hadoop快速入门——第三章、MapReduce案例(字符统计)
Hadoop快速入门--第三章.MapReduce案例 目录 环境要求: 1.项目创建: 2.修改Maven 3.编码 4.本地文件测试 5.修改[Action]文件(修改测试文件路径) 6.导出ja ...
最新文章
- shell下输出字体颜色
- Starry Night [USACO]
- Fedora 15 16 17 18 20无线网卡驱动安装
- 多个查询语句能否一次把结果导出_mysql表中base64格式数据查询
- TeamViewer免费版和付费版有什么不同
- 使用spring的JavaMailSender发送邮件
- SQLSTATE[HY000] [2013] Lost connection to MySQL...
- acriviti流程经过节点后执行方法,serviceTask
- matlab分析xml文件_如何在Java中读取XML文件(DOM分析器)
- JS数据结构第五篇 --- 二叉树和二叉查找树
- wepy公共样式_小程序开发wepy框架类vue的开发方式
- pyexiv2修改图片exvif
- 有道云笔记快捷键大全+修改
- java输出数据超过5个换行
- xlsx怎么设置行高列宽_Excel里面如何调整行高和列宽
- starCTF2019-oob
- jsp 自动倒数_JSP中的倒数计时器
- 使用UE4的nDisplay渲染到多个显示器
- 干货!使用Geotools解析shap数据实例
- 一个手机号可以注册绑定5个百度网盘,永久2T
热门文章
- Python代码写好了怎么运行?为大家详细讲讲如何运行Python代码
- android 界面代码,一个漂亮的app界面代码
- input限制只能输入数字,限制输入数字长度或者大小
- 沧小海笔记之基于xilinx的三速以太网相关知识的学习与理解
- 《给青年的十二封信》1-谈读书—朱光潜
- 2021-10-22
- js apply call bind
- 斗战神单机版正在连接服务器,斗战神登录卡在这里,又不提示登录失败或者连接超时什......
- Scala语法汇集ABC
- Android 消息机制(Handler运行机制)