Idea代码模板和自定义代码模板的使用
最近接触到Idea的代码模板和快捷键,发现可以大大减少开发过程中写一些机械化的代码,我们每天都在写代码,有些代码有结构性的相似,可以考虑使用代码模板(template)的方式加快我们的开发速度。这篇文章会先介绍Idea已经有的一些code/live template,然后介绍如何自定义代码模板(template)。
1.关于代码模板(Templates)
Idea的模板分两类,一类是Live Templates,另一类是Postfix Completion。Postfix Completion功能本质上也是代码模板,只是它比 Live Templates 来得更加便捷一点点而已。
2. 自带代码模板(Live Templates)
-
我们先看Idea自带的代码模板,后面再演示如何自定义代码模板,我选择遍历代码模板一个简单的例子来演示。
输入iter
输入iter.png
回车光标跳转到第二个参数,我们可以直接修改,因为上面我声明了一个value数组,所以这里自动生成了遍历value数组
回车光标跳转到第二个参数.png
再回车光标跳转回第一个参数,我们可以修改要遍历的变量名字
再回车光标跳转回第一个参数.png
回车后光标自动跳转到下一行,打印输出
打印输出.png
-
下面我们来看看Idea定义的代码模板
代码模板Live Templates的位置
Live Templates.png
Idea定义的iter模板,这里有很多代码模板,笔者就不一一列举,作为简单介绍,$END$表示回车后光标跳转的位置
iter例子.png
3.更快捷的代码模板(Postfix Completion)
更快捷的代码模板Postfix Completion功能本质上也是代码模板,只是它比 Live Templates 来得更加便捷一点点而已,下面来举一些例子操作演示一下。
-
以下是我在Idea演示的例子,for模板和sout模板(system.out.print打印输出语句)
for代码模板演示:
for模板1.png
回车后注意圈红的地方,我们可以直接修改要遍历的变量名
for模板2.png
修改后回车自动跳转下一行
回车后自动跳入下一行.png
sout代码模板演示:
sout模板.png
回车后自动填满代码,光标自动跳到在最后
输出遍历num的值.png
接下来我们可以看看Idea给我们自带的Postfix Completion代码模板,基本上提供的也满足我们开发过程中经常要写的代码,简化开发。 -
打开Idea,点击File – Setting
setting.png
-
再点击Editor – General – Postfix Completion
Editor-General-Postfix Completion.png
-
以下是Postfix Completion的一些定义好了的模板,笔者选择for和sout(system.out.print打印输出语句)两个简单的例子,默认情况下Postfix Completion是打开的,可以自己勾选关闭;我们可以看到before和after圈红的地方,首先有个value数组,当我们要遍历这个value数组的时候,在Idea输入value.for时,会自动帮我们写好for循环语句:
for.png
4. 自定义代码模板
添加自定义代码模板
![](https://img.haomeiwen.com/i17109776/3523409ff5b5c2c5.png)
选择第二个,创建一个代码模板分组
![](https://img.haomeiwen.com/i17109776/fedb561344e93f41.png)
添加代码模板
![](https://img.haomeiwen.com/i17109776/35dd2eba0459cda0.png)
有三个地方需要我们填写,第一个是代码模板快捷输入语句,第二个是说明,第三个就是我们自己定义的代码模板,$END$是回车后光标自动跳转的地方。
![](https://img.haomeiwen.com/i17109776/91af2bd93fae38b9.png)
这里未定义代码模板的适用范围
![](https://img.haomeiwen.com/i17109776/ab66513b23196dc5.png)
选择java的declaration声明范围,这里笔者注意到有statement范围,statement特意查了以下,不是声明的意思,是“语句”,貌似范围比declaration范围大,如有误解,希望指出。
![](https://img.haomeiwen.com/i17109776/4bb2f1856690285d.png)
输入自定义的sfs
![](https://img.haomeiwen.com/i17109776/f5ac8bc3a0d6bd87.png)
自动生成static final string
![](https://img.haomeiwen.com/i17109776/d15b58b00298b846.png)