大学阶段使用的是eclipse,工作后开始接触idea,在使用了一段idea之后,完全被它的强大之处深深吸引,尤其是它的代码智能提示补全。此外它的debug模式和插件安装上用起来也是非常的方便。总之idea的合理使用将会大大的提高程序员的开发效率。最近有空,就把idea的常规操作设置总结了一下。
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。 IDEA是JetBrains公司的产品,其官方网址http://www.jetbrains.com/
语言支持:Java、scala、Groovy,安装插件后可以支持更多语言
数据库支持:mysql、oracle、Sql Server、PostgreSQL
框架支持:springMVC、GWT、paly、webservice、Jsp、struts、hibernate
前端框架支持:html5、css3、sass、less、node.js
主要关注bin目录下的idea64.exe(启动)、idea64.exe.vmoptions(虚拟机参数配置,可以配置堆内存的初始化和最大值等)和idea.properties(属性配置)。
Appearance&Behavior >> Appearance >> Override Default fonts
Editor >> File Encodings, 可以对Global Encoding、Project Encoding、PropertiesFiles 编码进行设置,如下:
IntelliJ IDEA的代码提示与补充功能有一个特性:区分大小写。如上图所示,默认就是 First letter 区分大小写的。
区分大小写的情况是这样的:比如我们在 Java 代码文件中输入 stringBuffer, IntelliJ
IDEA是不会帮我们提示或是代码补充的,但是如果我们输入 StringBuffer 就可以进行代码提示和补充。
如果想不区分大小写的话,改为 None 选项即可。
标注1:在我们书写代码的时候,自动帮我们优化导入的包,比如去掉一些没有用到的包
标注2:在我们书写代码的时候,自动帮我们导入需要的包,但是对于那些同名的包,只能进行手动选择导入,idea不能只能帮我们选择
勾选上的表示该类型的代码在文件被打开的时候默认是被折叠的,去掉勾选则反之。
如图所示,IDEA 默认是不显示内存使用情况的,对于大内存的机器来讲不显示也无所谓,但是如果是内存小的机器最好还是显示下。点击后可以进行部分内存的回收。
IntelliJ IDEA 对于编辑大文件并没有太大优势,很卡,原因就是它有各种检查,这样是非常耗内存和 CPU 的,所以为了能加快大文件的读写,一般会暂时性设置为 None
。
标注1:Inspections
为最高等级检查,可以检查单词拼写,语法错误,变量使用,方法之间调用等。
标注2:Syntax
可以检查单词拼写,简单语法错误。
标注3:None
不设置检查。
在默认情况下我们新建一个class 对象,在对象顶部是没有注释的,但实际多人开发中,我们可能需要加一些说明,来说明这个class做什么,以及这个class对象的作者等信息
Settings>>Editor >> File and Code Templates
1设置模板名称,建议就是 * 号
2模板描述,可以没有
3模板,注意开头是没有 /* 的
4添加模板生成的地方,点开选择java或者全部都可以
5设置模板快捷键,我设置为回车
6编辑模板中的参数
7点apply完成
8用法:跟原来的一样: /** + 回车 即可,这就是为什么取名为 * 的好处
对于首次创建或打开的新项目,IntelliJ IDEA 都会创建项目索引,大型项目在创建索引的过程中可能会出现卡顿的现象,因此强烈建议在 IntelliJ IDEA 创建索引的过程中不要动项目。”那么,索引到底是干什么用的呢?
IntelliJ IDEA 的缓存和索引主要是用来加快文件查询的速度,从而提高各种查找、代码提示等操作的速度,因此索引对 IntelliJ IDEA 的高效性来说,具有至关重要的作用。但是,IntelliJ IDEA 的缓存和索引并不一定总是起到积极的作用,有的时候,反而会因为缓存和索引的损坏,例如突然断电、蓝屏引起的强制关机等等,造成 IntelliJ IDEA 出现一些莫名其妙的问题,例如项目打不开、个性化设置还原等等。接下来,就让我们一起看一看如何清理缓存和索引:
File
>>Invalidate Caches / Restart
就是清理缓存和索引的入口
相对于 Eclipse 的实时自动编译,IntelliJ IDEA 的编译更加手动化,虽然 IntelliJ IDEA 也可以通过设置开启实时编译,但是太浪费资源了,因此不建议这样做。IntelliJ IDEA 编译方式除了手工点击编译按钮进行编译之外,还可以在“容器”运行之前配置一个编译事件,先编译后运行。在默认情况下,IntelliJ IDEA 也都是这样设置的,因此在实际开发中,咱们也不用太注意编译这件事。虽然 IntelliJ IDEA 没有实时编译(未设置时),但是这并不影响代码的自动检查。但是对于多个类之间的关联关系,还是要等Build或Rebuild触发的时候才会做相关检查的。
标注1:Build Project,编译项目
标注2:Build Module,编译模块
标注3:Recomplie,重新编译类文件
标注4:Rebuild Project 重新编译项目
如上图所示,在 IntelliJ IDEA 中,编译方式有以上 3 种,分别为:
Build:对选定的目标(Project 或 Module)进行编译,但只编译修改过的文件,没有修改过的文件则不会进行编译。
Recompile:对选定的目标(Java 类文件),进行强制性编译,不管目标是否是被修改过。
Rebuild:对选定的目标(Project),进行强制性编译,不管目标是否是被修改过,由于 它的目标只有 Project,因此每次 Rebuild 花的时间都比较长。
如上图所示,IntelliJ IDEA 默认在运行项目之前先进行Build操作。
标注1:设置自动编译项目;
标注2:设置编译时heap大小;
标注3:设置编译时的VM参数。
如上图所示,定位到“ Build,Execution,Deployment > Complie ”页面,通过勾选 标注1 所示的Build project automatically,咱们可以设置 IntelliJ IDEA 进行自动编译;标注2 表示设置编译heap大小,默认为 700,如果使用 64 位的机器,在内存足够的情况下,可以尝试修改为 1500 或以上,此外,如果咱们在编译的时候报出OutOfMemoryError的错误,也可以来修改(减小)这个参数;标注3 表示设置编译时的虚拟机参数,这个可以根据需求进行个性化设置,一般情况下,默认就可以。
如上图所示,定位到“ Build,Execution,Deployment > Compiler > Excludes ”页面,可以通过点击 标注1 所示的+和-,任意添加或删减目录(或文件)进行编译排除。在编译项目的时候,如果任何一个可编译的文件没有编译通过,那么 IntelliJ IDEA 就无法运行起来,必须等全部问题解决并且编译通过之后,IntelliJ IDEA 才能运行起来。不过有可能在开发过程中,某一个包目录的文件编译无法通过,但是咱们又不急着改,这时咱们就可以考虑把该包加入到排除编译列表中,这样的话,项目就可以运行起来。
标注1:Use compile;
标注2:Project bytecode version;
标注3:Per-module bytecode version.
如上图所示,咱们定位到“ Build、Execution、Deployment > Compiler > Java Compiler ”页面,标注1 所示为 IntelliJ IDEA 支持的编译器,包括 Javac、Eclipse、Ajc 等,默认是 Javac,也推荐使用 Javac;标注2 所示为针对项目字节码编译版本,一般选择的是当前项目主 JDK 的版本;标注3表示可以针对Project下各个Module的特殊需求单独设置不同的bytecode version,当然,前提是咱们的电脑上必须事先安装对应的 JDK 版本。
File
>> Settings
>> Plugins
进入插件安装界面
标注 1:显示 IntelliJ IDEA 的插件分类,
All plugins:显示 IntelliJ IDEA 支持的所有插件;
Enabled:显示当前已启用的插件;
Disabled:显示当前未启用的插件;
Bundled:显示 IntelliJ IDEA 所有自带的插件;
Custom:显示我们自己安装的插件。
标注 2:打钩√表示为已经启用的插件;
标注 3:安装 JetBrains 开发的插件;
标注 4:安装插件仓库提供的插件;
标注 5:安装本地已经下载完的插件。
常用插件
插件名称 |
插件介绍 |
官网地址 |
Alibaba Java Coding Guidelines |
阿里巴巴代码规范检查插件 |
https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines |
Key promoter |
快捷键提示插件 |
https://plugins.jetbrains.com/plugin/4455?pr=idea |
Grep Console |
自定义控制台输出格式插件 |
https://plugins.jetbrains.com/idea/plugin/7125-grep-console |
CheckStyle-IDEA |
代码规范检查插件 |
https://plugins.jetbrains.com/plugin/1065?pr=idea |
FindBugs-IDEA |
潜在 Bug 检查 |
https://plugins.jetbrains.com/plugin/3847?pr=idea |
MetricsReloaded |
代码复杂度检查 |
https://plugins.jetbrains.com/plugin/93?pr=idea |
Statistic |
代码统计插件 |
https://plugins.jetbrains.com/plugin/4509?pr=idea |
JRebel Plugin |
热部署插件 |
https://plugins.jetbrains.com/plugin/?id=4441 |
CodeGlance |
显示代码地图插件 |
https://plugins.jetbrains.com/plugin/7275?pr=idea |
Markdown Navigator |
Markdown 编辑器插件 |
https://plugins.jetbrains.com/plugin/7896?pr=idea |
Eclipse Code Formatter |
Eclipse 代码风格格式化插件 |
https://plugins.jetbrains.com/plugin/6546?pr=idea |
Jindent-Source Code Formatter |
自定义模板插件 |
http://plugins.jetbrains.com/plugin/2170?pr=idea |
Maven Helper |
Maven 辅助插件 |
https://plugins.jetbrains.com/plugin/7179-maven-helper |
Properties to YAML Converter |
Properties 转 YAML 格式插件 |
https://plugins.jetbrains.com/plugin/8000-properties-to-yaml-converter |
Git Flow Integration |
Git Flow 集成插件 |
https://plugins.jetbrains.com/plugin/7315-git-flow-integration |
搜索全部文件名:Shift + Shift
查找:Ctrl + F
全文检索:Ctrl + Shift + F
显示意向行动和快速修复:Alt + Enter
生成代码:Alt + Insert(生成get、set、hashCode等方法)
方法的参数信息提示:Ctrl + P
选择代码块:Ctrl + W 或双击鼠标
最近文件弹出窗口:Ctrl + E
文件Revert:Ctrl + Alt + Z
光标位置移动:Ctrl + Alt + 箭头
去除多余的包:Ctrl + Alt + o
查看类整体结构:Alt + 7
查看方法/类被调用位置:Alt + F7
打开相应工具窗口:Alt + #[0-9]
编辑器最大化:Ctrl + Shift + F12
打开设置对话窗口:Ctrl + Alt+ S
打开项目结构对话窗口:Ctrl + Alt +Shift + S
跳出函数/单步执行:F8/F7
运行至光标:Alt + F9
继续运行程序:F9
切换断点:Ctrl + F8
查看断点:Ctrl + Shift + F8
查找:Ctrl + F
查找上一个/下一个:F3 / Shift + F3
替换:Ctrl + R
指定路径查找:Ctrl + Shift + F
指定路径替换:Ctrl + Shift + R
选择下次出现:Alt + J
不选择出现:Alt + Shift + J
选择全部出现:Ctrl + Alt +Shift + J
完成语句:Ctrl + Shift + Enter
参数查询:Ctrl + P
简要信息:Ctrl + mouse
显示光标所在位置的错误说法:Ctrl + F1
生成代码:Alt + insert
重载方法:Ctrl + O
实现方法:Ctrl + I
把代码包在一个块内,例如:try/catch Ctrl+Alt+T
行注释/取消注释:Ctrl + /
块注释/取消注释:Ctrl + Shift + /
重新格式化代码:Ctrl + Alt + L
自动行缩进:Ctrl + Alt + I
剪切当前行:Ctrl + X, Shift + Delete
删除当前行:Ctrl + Y
复制当前行到粘贴板:Ctrl + C, Ctrl + Insert
从最新缓冲区粘贴:Ctrl + Shift + V
另起一行:Shift + Enter
光标所在位置大小写转换:Ctrl + Shift + U
删除至文字结束:Ctrl + Delete
删除至文字开始:Ctrl + BackSpace
展开/收缩代码块:Ctrl + - / Ctrl + +
全部展开/收缩:Ctrl + Shift + - / +
关闭标签页:Ctrl + F4
重命名:Shift + F6
提取方法:Ctrl + Alt + M
提取变量:Ctrl + Alt + V
提取字段:Ctrl + Alt + F
提取参数:Ctrl + Alt + P
提取常量:Ctrl + Alt + C
跳转到类:Ctrl + N
跳转到文件:Ctrl + Shift + N
跳转到符号:Ctrl + Alt + Shift + N
跳转到上一个/下一个编辑器标签:Alt + Right/Left
跳转到上一个下一个方法:Alt + Up/Down
跳转到上一个工具窗口:F12
从工具窗口跳转到编辑器:Esc
隐藏最后活动的窗口:Shift + Esc
跳转到指定行:Ctrl + G
最近文件弹出窗口:Ctrl + E
跳转到上次编辑位置:Ctrl + Shift + BackSpace
跳转到定义:Ctrl + B
跳转到实现:Ctrl + Alt + B
打开快速查找定义:Ctrl + Shift + I
跳转到类型定义:Ctrl + Shift + B
跳转到超方法/类:Ctrl + U
光标移动到代码块结束/开始:Ctrl + ]/[
当前文件结构弹出窗口:Ctrl + F12
类型层次:Ctrl + H
方法层次:Ctrl + Shift + H
调用层次:Ctrl + Alt + H
下一个/上一个高亮错误显示:F2/Shift + F2
显示导航栏:Alt + Home
添加/去除书签:Ctrl + F11 / F11
跳转到书签:Ctrl + [0-9]
显示书签:Shift + F11
生成项目(编译修改和依赖项):Ctrl + F9
编译选择的文件、包或模块:Ctrl + Shift + F9
选择配置并运行/调试:Alt + Shift + F10/F9
运行/调试:Shift + F10/F9
从编辑器运行上下文配置:Ctrl + Shift + F10
高亮显示文件中的使用:Ctrl + Shift + F7
显示使用:Ctrl + Alt + F7
提交代码:Ctrl + K
更新代码:Ctrl + T
提交(push):Ctrl + Shift + K
快速弹出VCS:Alt + BackQuote(`)