怎样在IntelliJ里简化的你的操作—制作Live Template
IntelliJ中,除了IDE自带的标准模板,它还具有强大的定义新模板的功能。使用过Eclipse(MyEclipse)的程序员对定义模板并不会陌生,
也一定从中受益。其实,IntelliJ也具有相同的功能。且不去比较哪个IDE功能更强大。很多新使用IntelliJ的人,和我一样,会因为IntelliJ复杂
的操作而头疼,不知道从哪里入手。加上国内关于IntelliJ的介绍少之又少,相比Eclipse,上手IntelliJ要复杂的多。本篇是在阅读了以下博文后
记录下来的Live Template的操作:
http://www.javacodegeeks.com/2011/11/whats-cool-in-intellijidea-part-ii-live.html
首先,Ctrl+J快捷键组合用于获得相关模板的列表(对自定义模板和系统模板都起作用)。一般这些缩写都是模板关键词首字母的组合。

在Settings -> Live Templates -> By default expand with选项,我们可以设置扩展提示键(default expansionkey),默认的为
Tab。这里设置为Space,因为Space键更符合自己的习惯。当然,你可以不作改动,或者设成其他系统提供的Key。
那么,怎样去定义自己的模板?
首先,我们先来定义一个我们常用的模板。由于一些原因,IntelliJ并没有提供try-catch模板。它只提供了把一行语句用try-catch代码块
想实现一个空try-catch代码块的时候,却需要手动输入。
Settings(Ctrl+Alt+S) -> Live Templates -> Add -> Edit Live Template
制作try-catch模板,我们只需要输入Abbreviation和try-catch代码,选中Java code选项。

try-catch模板非常简单,它只有一些给定的关键字。IntelliJ提供的功能远不止如此,例如,把光标定位到某个位置。
如果我们想添加一个throwable类型在catch中,我们可以添加一个($EXCEPTION$)并通过IntelliJ提供的一个特殊的函数来定义它的值。
例如,我希望输入一个java.lang.Exception类的子类型,因此我使用了subtype(<type>)函数。

在上图中,你可能发现我使用了$END$,但是却没有编辑窗口,这是因为$END$是预定义的变量,它用把光标最后定位到这个位置。
现在,我们来试一下输入try,然后按space键,我们可以看到扩展出的模板。

首先,光标被定位到catch括号中,来选择exception类型。Enter,光标将会返回到try代码块中。
我们可能会需要进一步调用exception方法,通过模仿Ctrl+Space来使用一个特殊的方法。这是一个可选的例子,我们假设现在需要这么
做。
定义一个$METHOD$,在Edit Live Template窗口中赋值为complete()函数。

一旦exception类型被选中,将会自动的产生exception实例的列表提示。
这些都是可用于Live Templates为变量赋值的方法。更值得一提的是,这种方法不仅是用于Java语言,其他语言也同样可以,例如
JavaScript, HTML, Groovy Code。
给语句添加模板?
IntelliJ的Live templates提供其他类型的模板——surrounding templates。这意味着你可以选择一行代码块(甚至只是光标的一个位置)
然后按Ctrl+Alt+T快捷键,就会弹出建议的模板。
定义一个surround templates和normal templates的操作基本一样。在Template text中输入$SELECTION$。


浙公网安备 33010602011771号