写在前面

演示完常用的模板以后,下面咱们来说下一个问题,即我们如何来修改现有的模板,以及如何去自定义一个模板。其实,这说明了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快速入门 | 第三十篇:如何来自定义模板呢?相关推荐

  1. IntelliJ IDEA快速入门 | 第三十一篇:在IntelliJ IDEA 2020.3.3中添加Tomcat镜像并部署Web工程

    写在前面 讲完模板以后,咱们来说一下如何在IntelliJ IDEA当中去创建Java Web的工程.这里,我们主要分两种情况来讲,第一种是如何创建静态的Java Web工程,另外一种是如何创建动态的 ...

  2. IntelliJ IDEA快速入门 | 第三十三篇:在IntelliJ IDEA中如何进行断点调试呢?

    断点调试是程序员的一个基本技能,有多重要不用我再说了吧

  3. AutoCAD快速入门(三十):打印

    窗口打印是使用频率较高的打印操作,打印方式十分灵活,用户可以使用框选来指定打印区域. 1.单击顶部快速访问工具栏的"打印"按钮. 2.在"打印机/绘图仪"的下拉 ...

  4. 5加载stm32 keil_快速入门STM32单片机-软件篇

    关于这个STM32的编程开发环境Keil,网上有太多相关的资源了,而且大都讲解的非常详细.所以本篇文章无意于深入细节,只会提供我学习时候的一些体会,帮助你更好的掌握相关知识. 1.标准外设库(Stan ...

  5. 教你从0到1搭建秒杀系统-Canal快速入门(番外篇)

    Canal用途很广,并且上手非常简单,小伙伴们在平时完成公司的需求时,很有可能会用到.本篇介绍一下数据库中间件Canal的使用. 很多时候为了缩短调用延时,我们会对部分接口数据加入了缓存.一旦这些数据 ...

  6. 带你快速入门AXI4总线--AXI4-Stream篇(1)----AXI4-Stream总线

    写在前面 随着对XILINX器件使用的深入,发现越来越多的IP都选配了AXI4的接口.这使得只要学会了AXI4总线的使用,基本上就能对XILINX IP的使用做到简单的上手.所以学会AXI4总线,对X ...

  7. 带你快速入门AXI4总线--AXI4-Full篇(3)----XILINX AXI4-Full接口IP源码仿真分析(Master接口)

    写在前面 接slave接口篇,本文继续打包一个AXI4-Full-Master接口的IP,学习下源码,再仿真看看波形. 带你快速入门AXI4总线--AXI4-Full篇(2)----XILINX AX ...

  8. 带你快速入门AXI4总线--AXI4-Full篇(1)----AXI4-Full总线

    写在前面 AXI4系列链接:带你快速入门AXI4总线--汇总篇(直达链接) 1.什么是AXI4-Full? AXI 表示 Advanced eXtensible Interface(高级可扩展接口), ...

  9. Hadoop快速入门——第三章、MapReduce案例(字符统计)

    Hadoop快速入门--第三章.MapReduce案例 目录 环境要求: 1.项目创建: 2.修改Maven 3.编码 4.本地文件测试 5.修改[Action]文件(修改测试文件路径) 6.导出ja ...

最新文章

  1. shell下输出字体颜色
  2. Starry Night [USACO]
  3. Fedora 15 16 17 18 20无线网卡驱动安装
  4. 多个查询语句能否一次把结果导出_mysql表中base64格式数据查询
  5. TeamViewer免费版和付费版有什么不同
  6. 使用spring的JavaMailSender发送邮件
  7. SQLSTATE[HY000] [2013] Lost connection to MySQL...
  8. acriviti流程经过节点后执行方法,serviceTask
  9. matlab分析xml文件_如何在Java中读取XML文件(DOM分析器)
  10. JS数据结构第五篇 --- 二叉树和二叉查找树
  11. wepy公共样式_小程序开发wepy框架类vue的开发方式
  12. pyexiv2修改图片exvif
  13. 有道云笔记快捷键大全+修改
  14. java输出数据超过5个换行
  15. xlsx怎么设置行高列宽_Excel里面如何调整行高和列宽
  16. starCTF2019-oob
  17. jsp 自动倒数_JSP中的倒数计时器
  18. 使用UE4的nDisplay渲染到多个显示器
  19. 干货!使用Geotools解析shap数据实例
  20. 一个手机号可以注册绑定5个百度网盘,永久2T

热门文章

  1. Python代码写好了怎么运行?为大家详细讲讲如何运行Python代码
  2. android 界面代码,一个漂亮的app界面代码
  3. input限制只能输入数字,限制输入数字长度或者大小
  4. 沧小海笔记之基于xilinx的三速以太网相关知识的学习与理解
  5. 《给青年的十二封信》1-谈读书—朱光潜
  6. 2021-10-22
  7. js apply call bind
  8. 斗战神单机版正在连接服务器,斗战神登录卡在这里,又不提示登录失败或者连接超时什......
  9. Scala语法汇集ABC
  10. Android 消息机制(Handler运行机制)