idea学习系列一之idea配置
在实际的项目开发中开发工具的作用不言而喻,一个好的开发工具可以让你事半功倍,一个普通的文本编辑工具和一个好的开发功能差别真的有天壤之别,这就好比你拿这一把菜刀和拿着一把AK。
在java中目前主流的开发工具主要有eclipse、MyEclipse、IntelliJ IDEA。以前一直是eclipse独占天下,不过随着时代的变迁IntelliJ IDEA(简称idea)慢慢兴起。在刚刚开始用idea的时候你可能不太习惯,但是熟悉之后你会发现idea真的比eclipse好用。不管是界面、功能、人性化方面都比eclipse要好,所以我打算出一个专栏来介绍一下idea的使用,因为我正再做的一个项目的后端就是使用idea来做的。
至于idea,有能力建议购买正版的。如果你想白嫖,可以用ide-eval-resetter插件来实现
idea配置
idea的下载、安装和创建项目之类的我就不说了这个网上有很多的资料也很easy。下面主要说一下作为java开发环境要进行哪些配置
使用默认全局配置
idea配置的地方有两个一个是针对于当前项目的(路径为:File–>Settings)一个是全局的用于所有项目(路径为:File–>Other Settings–>Default Settings)
我们在 Project 状态下进行 IDE 设置,这些设置并不会被当做一个标准的 IDE 设置模板保存起来,所以你下次打开一个新的 Project 还是要重新设置的,为了简便操作,你可以将设置配置在 Default Settings
中,这样下次打开新的 Project 就会以这个 IDE 设置进行。不过有些东西在default settings中可能会没有,所以有些就只能在settings中设置了
需要注意的是:全局设置,配置好之后,你需要重启 IntelliJ IDEA,重启之后的 IntelliJ IDEA 重新打开 Project 才能有效果。
取消自动更新
在File->Settings->Appearance & Behavior->System Settings->Updates下取消Automatically check updates for勾选
隐藏配置文件
在File->Settings->Editor->File Types下的”Ignore files and folders”一栏添加 *.idea;*.iml
编码格式设置
直接到:File->Settings->Editor->File Encodings 中把所有的设置为UTF-8就可以了。
不过需要注意的是,在Properties File哪里需要把后面哪一项勾上。Transparent native-to-ascii conversion属性主要用于转换ascii,不然Properties文件的中文会被转码
自动导入包
在Intellij IDEA一次只能导入单个包,没有像Eclipse快速导入包的快捷键Ctrl+Shift+O,但是Intellij IDEA下有个自动导入包的功能。在File->Settings->Editor->General->Auto Import下进行配置。全部勾上就行
Insert imports on paste:复制代码的时候,对于导入的包是否需要进行询问的一个选项。
ASK(有需要导入的包名时会弹提示框,问你要不要导入)
NONE(有需要导入的包名时不会弹提示框,也不会自动导入)
ALL(有需要导入的包名时会自动导入,不会弹提示框)
Show import popup:当输入的类的声明没被导入时,会弹出一个选择的对话框
Optimize imports on fly:自动优化包导入,移除不需要的包
Add unambiguous imports on the fly:这个就是自动导入功能了,当你输入类名后声明就被自动导入了
Exclude from Import and Completion:这个其实就是你自定义import,可以不用关注,一般来说你是用不上的
处理会导入所有包的问题
将数值改为99,并将Package to Use import with "*"删掉默认的这两个包(不管使用多少个类,只要在这个列表里都会变为 * )
生成serialVersionUID
搜索Serialization ,然后勾上。在将光标放到类名上按Atl+Enter键就会提示生成serialVersionUID了
快捷提示大小写不敏感
设置为None
注释模板
类注释模板
在创建类的时候自动添加注释
/**
* @author cdfan
* @date ${DATE}
* @version 1.0
* @description: ${PACKAGE_NAME}
*/
将下面中的替换
方法注释模板
方法模板的设置可能有点特殊,必须要根据下面的方式进行设置否可能获取不到param的值
参考:
*
* 功能描述: $description$
* $VAR1$
$params$ * @return $returns$
* @author cdfan
* @date $date$ $time$
*/
这里的标识必须是*,格式不能乱哦
然后点击Edit variables进行变量设置
这里注意VAR1变量的设置,表达式为:
groovyScript("
def result='';
def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
for(i = 0; i < params.size(); i++) {
if(i!=0)result+= ' * ';
result+='@param ' + params[i] + ((i < (params.size() - 1)) ? '\\n' + '\\t' : '');
};
return result", methodParameters())
在使用的时候在方法上输入/** 然后按Tab就可以设置注释了。注意这里是/**
,而之前设置的标识符为*
效果图:
代码模板
代码模板和方法注释模板一样在Live Templates中设置,其实方法注释模板就是代码模板,我们可以定义一个标识并定义好模板,在输入的时候只需要输入标识就可以快速的生成模板了。
这里建议将触发代码模板的按键改为Enter,他默认是Tab
自带变量参数
在代码模板中有两个自带的变量参数。分别是:
-
$END$
,表示最后都编辑完后光标所处的位置(这里其实添加了自定义变量之后光标也会跑到自定义变量哪里) -
$SELECTION$
,表示设置环绕实时代码模板,环绕功能下面会模板专门进行介绍。
自定义变量
设置自定义变量名只要用两个 $
包住即可。每个变量在代码输出的时候都是一次光标位置,光标跳动顺序从左到右,每次跳动按 Enter
。并且当我们在一个模板中一个变量在多个地方使用了。那么我们修改一个位置的变量的值,其他位置的变量的值也会进行相应的修改。
注意这里给变量设置默认值(就是在Edit variables中给变量设置默认值)的时候,默认值必须要用双引号引起来才行。
还有如果需要对生成的代码进行格式化那么需要勾上这个选项
例如这里如果勾上了这个选项,那么$END$
光标所处的位置就会根据代码的缩进来定位。如果不勾那么END的位置就不会有缩进
自带的模板
- fori
- int普通for循环
- iter
- 增强for循环
- sql相关
- 查询:sel、selc(count查询)、selw(where查询)
- ins、upd
环绕模板
环绕模板通过$SELECTION$
来定义。这里的$SELECTION$
其实表示的是被环绕的数据。使用的时候通过Ctrl+Alt+J
来显示选择对应的环绕模板
例如:
定义之后我们选中需要被环绕的数据按Ctrl+Alt+J
然后选择p标签,那么选中的数据就会被<p>
标签环绕。
在java中也可以通过Ctrl+Alt+J
来使用自定义的环绕模板,但是在java中自定义的环绕模板并不多。更多的是使用Ctrl+Alt+T
来使用环绕代码块
模板变量
参考:
https://www.jetbrains.com/help/idea/edit-template-variables-dialog.html
项目 | 描述 |
| 创建一个具有位于指定位置的注释的类型符号。 |
| 建议在当前范围内适用的所有数组变量 |
| 为 Kotlin 对象表达式建议一个超类型。 |
| 返回作为参数传递的字符串,转换为骆驼大小写。例如, |
| 将作为参数传递的名称的首字母大写。 |
| 将作为参数传递的匹配名称的所有字母大写,并在各部分之间插入下划线。例如,如果作为参数传递的字符串 |
| 将右侧表达式转换为左侧表达式类型。在 “迭代” 组中使用它可以生成原始类型和泛型集合的单个模板。 |
| 返回当前类的名称(扩展模板的类)。 |
| 此表达式替换在变量位置的类名称完成。 |
| 返回系统剪贴板的内容。 |
| 从 snake_case 字符串中返回 CamelCase 字符串。例如,如果作为参数传递的字符串 |
| 此表达式替换可变位置处的代码完成调用。 |
| 此表达式替换在变量位置的智能类型完成调用。 |
| 返回数组的组件类型。 |
| 返回当前包的名称。 |
| 以指定的格式返回当前系统日期默认情况下,当前日期以默认系统格式返回。但是,如果您在双引号中指定日期格式,则日期将以此格式显示: |
| 将作为参数传递的名称的第一个字母替换为相应的小写字母。 |
| 显示作为字符串参数输入的类的子项。 |
| 在模板调用中建议完成的逗号分隔字符串的列表。 |
| 转义指定的字符串。 |
| 返回作为整个模板的结果所需的类型。如果模板在分配的右部分、返回后等范围内展开,则会有意义。 |
| 返回具有扩展名的文件名。 |
| 返回没有扩展名的文件名。 |
| 返回作为参数传递的字符串的第一个单词。 |
| 返回具有指定代码的 Groovy 脚本。 您可以使用带有多个参数的 groovyScript 宏。第一个参数是执行的脚本文本或包含脚本的文件的路径。下一个参数绑定到脚本中可用的 |
| 对存储在 |
| 返回可迭代(iterable)组件的类型,例如数组或集合。 |
| 返回可以迭代的变量的名称。 |
| 返回当前行号。 |
| 返回以破折号分隔的小写形式,作为参数传递的字符串。例如,字符串 |
| 返回包含(embracing)方法的名称(扩展模板的位置)。 |
| 返回包含方法的参数列表(其中扩展了模板)。 |
| 返回由当前方法返回的值的类型(该模板在其中展开的方法)。 |
| 返回当前类的完全限定名(扩展模板的类)。清除 “缩短” 的 “检查名称” 复选框。 |
| 用右侧表达式的类型声明左侧变量。在 “迭代” 组中使用它可以生成原始类型和泛型集合的单个模板。 |
| 返回从作为参数传递的 CamelCase 字符串中的 snake_case 字符串。 |
| 返回用匹配字符串作为参数传递的空格分隔的字符串。例如,如果作为参数传递的字符串 |
| 返回作为参数传递的类型的子类型。 |
| 建议索引变量的名称。 |
| 根据引用变量命名规则的代码样式设置,根据变量类型及其初始化程序表达式建立变量的名称。 例如,如果它是在迭代中保存元素的变量,则 IntelliJ IDEA 对最合理的名称进行猜测,同时考虑到要迭代的容器的名称。 |
| 不建议 |
| 返回当前系统时间。 |
| 返回作为参数传递的变量的类型。 |
| 返回作为参数传递的字符串, 并将 CamelHump 字母替换为下划线。例如,如果作为参数传递的字符串 |
| 返回作为参数传递的字符串, 并用空格替换下划线。 |
| 返回当前用户的名称。 |
| 建议所有可能分配给作为参数传递的类型的变量,例如variableOfType(“java.util.Vector”)。如果将空字符串 (“”) 作为参数传递, 则建议所有变量, 而不考虑它们的类型。 |
| 返回 JavaScript 数组名称。 |
| 返回当前 JavaScript 类的名称。 |
| 返回 JavaScript 组件类型。 |
| 返回当前 JavaScript 方法的名称。 |
| 返回当前 JavaScript 类的完整名称。 |
| 返回建议的索引名称。 |
| 返回变量的建议名称。 |
语法检查级别
打开文件,然后点击右下角的老头头像。就可以设置语法检查的级别
- Inspections 为最高等级检查,可以检查单词拼写,语法错误,变量使用,方法之间调用等。
- Syntax 可以检查单词拼写,简单语法错误。
- None 不设置检查。
开启鼠标悬停显示文档
开启后和eclipse一样鼠标悬停在类或方法上自动显示该类或方法的文档说明
滚轴修改字体大小
内存
显示内存的使用:
勾上之后。在最右下角就会显示内存的使用情况
在配置文件中修改了内存的大小之后还需要修改这里。可以提高make 或 rebuild 过程中的速度
软分行
对于横向太长的代码我们可以进行软分行查看。软分行引起的分行效果是 IntelliJ IDEA 设置的,本质代码是没有真的分行的。
不隐藏空包树形展示文件
把上图中标注的地方去掉选中就可以了
打开的文件分多行显示
行注释
在通过Alt+/来进行代码注释的时候,可以设置注释的格式
关闭参数提示
默认情况下在调用方法的时候他在方法的参数前面给一个参数的提示,如果我们不想要可以把他关闭
参数提示:
关闭方式:
Project Structure项目配置详情
在idea中没有工作空间的概念,在Eclipse中的工作空间在这里就叫做项目,然后idea项目里面的每个module相当于Eclipse中的项目。通常默认情况下我们在idea中创建的项目和模块为了方便都合并了,其实他在我们创建项目的时候默认创建了一个模块名称也叫项目名,所以在idea的配置中module的配置,也是我们项目的配置。简单可以这样理解吧
在Project Settings中有这么几个配置页:Project、Modules、Libraries、Facets、Artifacts。
- project
- 这里面的配置主要的就是项目jdk和项目编译后的输出路径
- Modules
- Modules里面配置的东西还是很重要的,Sources中可以设置项目中目录的类型,Paths设置详细的编译输出路径,而Dependencies这是设置项目模块的依赖,就类似于Eclipse中的build path中的配置,并且在设置依赖的jar包时还可以设置他的生效范围
- Libraries
- Libraries的功能和Modules中的Dependencies一致,只不过在这里可以在加包的时候做分组管理和起别名,其实没什么用。
- Facets
- 他会显示出项目里面使用的技术架构,以及这些技术架构的配置信息,其实也没什么实际作用
- Artifacts
- 项目的打包部署设置,可以设置项目的打包类型,部署的路径以及部署的结构等等
主题
安装下载主题步骤:
1.从主菜单打开你的编辑器选择File->Import Setting.选择你下载的Jar文件;
2.等待重启之后进行配置打开File->Settings->Editor->Colors and fonts 然后选择你安装的主题即可完成;
导入后还需要进行微调:
打开:Setting–>Editor–>Color Scheme–>Color Scheme Font
重新设置一下字体的大小,以及字体类型
配置完这些,一个常用的java开发环境就配置好了,当然这个是我个人的习惯配置,各位童鞋可以自行决定要那些。可能有点多,但这同时也体现了idea丰富的功能,而且这个也通常只要配置一次就可以了的