J2EE学习笔记 —— IDEA 高效编码之 Live Template

LiveTemplates的作用

Live Template翻译为实时模板,可以自动生成代码模板,提高开发效率。这样说可能比较抽象,最直观的例子是我们在IDEA 中输入sout + Tab 系统就能自动补全一句System.out.println(),输入fori + Tab 就能自动补全为一个循环体。这就是Live Template的作用,实时的代码补全功能。

查看IDEA中的Live Templates

IDEA中提供了很多预设的Live Templates,我们可以直接在File->Settings中查看和设置:

  1. IDEA给我们实先预设了很多模板,并且分好了类:
    在这里插入图片描述
    这些模板只能按照这些分类在具体的语言或环境下使用。
  2. 以sout为例,其各部分含义如下图所示。这也不难理解,为什么我们在java程序中输入sout,程序能够自动补全为System.out.println();。
    sout对应的LiveTemplate:
    在这里插入图片描述
    这里有一个比较细微的点是在By default expand with后面的下拉选项中可以指定点击哪个键的时候自动补全。这里我测试了一下,设置为Tab或者Enter结果都是两者均可补全,而设置成Space则变成了Tab、Enter、Space三者均可。所以如果你希望多一个补全的建位可以直接设置成Space, 这不影响Tab和Enter的补全功能
    在这里插入图片描述
  3. 让我们再更细致一点地分析一下“sout对应的Live Template”那张图吧。首先是画面中可以点击的地方:changes。点击changes,可以改变这个template的作用范围。
    在这里插入图片描述
    从上面这张图可以看出,输入sout即自动补全,只有在Java项目中的Statement中输入才可以。在方法外或者注释中、“ ”中都没有办法自动补全。我曾经尝试把其他的选项都勾选上,但是和只勾选Statement其实也没有多大差别。所以后面我们自己创建的Live Template时候只要把Statement勾选上也就基本够用了

自定义Live Template

对于我们在某次项目中需要频繁输入的语句,我们可以自定义一个Live Template, 那么接下来我们在代码中也就可以使用快捷键快速补全一大段代码了。

  1. 点击右上角+。可以选择直接增加一个Live Template还是Live Template组。这里建立一个MyLiveTemplate组吧,方便以后统一管理。嫌麻烦的话可以直接选择Live Template。
    在这里插入图片描述
    在这里插入图片描述
  2. 再次点击加号,选择Live Template, 在其中新建一个实时模板。设置其简写为sysu,Description 描述为to print username;怎么设置看个人喜好。
    比较重要的是Template text中的内容,指定了输出的样式。样式中采用“$变量名$”的方式预留变量位置, “$END$”指出默认光标结束的地方。这里设置为:
    System.out.println("$User$="+$User$);$END$(图中最后多打了一个;)
    在这里插入图片描述
  3. 不要忘记设置作用范围!!! 按照我们上面所说的,选择Statement就差不多了。
    在这里插入图片描述
  4. Apply并退出。在Java方法中输入sysu并Tab。
    在这里插入图片描述
    光标默认在第一个变量的位置:
    在这里插入图片描述
    输入变量名,在模板中变量名相同的地方会被同时替代(非常方便!!):
    在这里插入图片描述
    这样自定义的模板也就创建完成了。
  5. 有人可能会问那么为什么要有$END$。我个人的理解是这样的:

点击Edit variables可以进入变量的编辑页面,勾选图中的skip if…的选项,Apply,再次输入sysu + Tab。
在这里插入图片描述
这时光标会跳到$END$所在的位置。在这里插入图片描述
当模板中有多个变量时,我们可以选择任意个跳过的变量,光标会直接往后移动。我认为 $END$的存在实际上并不是标志着语句的结尾,而是提供了一个“skip”所有变量、或者没有变量时,光标会默认存在的位置。
这一点结合sout的模板就可以看出,在sout对应的Template text中,$END$并非处在语句最后,而是()当中,是光标默认存在的地方。

发布了6 篇原创文章 · 获赞 1 · 访问量 1222

猜你喜欢

转载自blog.csdn.net/qq_44861716/article/details/104566011