前言
正所谓工欲善其事必先利其器,对开发人员而言若想提高编码效率,一款高效的开发工具是必不可少的,相信看到该博客的朋友们都已经对IntelliJ IDEA有所了解了,所以此处就不对IntelliJ IDEA进行介绍,而是直接阐述在实际开发中应用场景。博主使用的IntelliJ IDEA版本为IntelliJ IDEA 2017,因为博主是一名Java开发工程师,所以以下内容均以Java为主。(相信有不少人和我一样是从Eclipse转粉IntelliJ IDEA,在学习IntelliJ IDEA前请尽量忘记Eclipse有关知识)在学习过程中主要参考了https://github.com/judasn/IntelliJ-IDEA-Tutorial,该教程对IntelliJ IDEA介绍十分详细,你们可以直接点击以上链接进行学习。至于为什么写这篇博文,我的目的是想把自己的个性化配置记录下来,当然如果与此同时能帮助到其他人,岂不美哉,本文将持续更新,由于本文内容较多建议读者从目录树上定位想要获取的配置信息
关闭Intellij IDEA自动更新
在File->Settings->Appearance & Behavior->System Settings->Updates下取消Automatically check updates for勾选
隐藏.idea文件夹和.iml等文件
IntelliJ IDEA项目会自动生成一个.idea文件夹和.iml文讲,看着实在是碍眼,所以对以上文件进行隐藏处理
在File->Settings->Editor->File Types下的”Ignore files and folders”一栏添加 *.idea;*.iml;等配置如下图所示
代码编辑器主题风格
编辑器风格修改个人并不推荐完全由自己来配置,因为网上提供了很多优秀的主题风格,我们可以导入自己喜欢的主题,然后在其基础上进行微调,推荐主题下载网站http://www.riaway.com,安装下载主题步骤:
1.从主菜单打开你的编辑器选择File -> Import Setting .选择你下载的Jar文件; 2.等待重启之后进行配置打开File ->Settings ->Editor ->Colors and fonts 然后选择你安装的主题即可完成;
- 1
- 2
设置第一字体和第二字体,修改字体大小:
自行去网上下载相应字体安装后重启Intellij IDEA,在主菜单下选择File->Settings->Editor->Colors & Fonts -> Font
show only monospaced fonts表示筛选显示系统上的等宽字体,由于Windows系统上等宽字体并不多,勾选此选项出现的下拉字体可选择就很少,取消勾选之后,就可以显示系统上所有已安装的字体。我是按教程推荐配置,英文字体选择Monaco,此字体不支持中文,所以把这个设置为第一字体,第二字体使用Yahei Consolas Hybrid,该字体含有中文。字体大小我是修改为20,配置如下图所示:
控制台输出字体和上述类似 此处不进行说明(控制台输出乱码即通过配置字体解决)
文件编码设置
File->Settings->Editor->File Encodings
推荐设置
Global Encoding :UTF- 8 Projectt Encoding :UTF- 8 Default encoding for properties files: UTF- 8 勾选上 Transparent native-to-ascii conversion
- 1
- 2
- 3
- 4
Transparent native-to-ascii conversion属性主要用于转换ascii,不然Properties文件的中文会被转码,IntelliJ IDEA除了支持对整个Project设置编码之外,还支持对目录、文件进行编码设置。如果你要对目录进行编码设置的话,可能会出现需要Convert编码的弹出操作选择,强烈建议在转换之前做好文件备份,不然可能出现转换过程变成乱码,无法还原。对单独文件的编码修改还可以点击右下角的编码设置区,如果代码内容中包含中文,则会弹出演示中的操作选择,Reload 表示使用新编码重新加载,新编码不会保存到文件中,重新打开此文件,旧编码是什么依旧还是什么,Convert 表示使用新编码进行转换,新编码会保存到文件中,重新打开此文件,新编码是什么则是什么。个人编码配置如下图所示:
类和方法注释模板
1.修改类注释模板
在File->Settings->Editor->File and Code Templates下分别修改Class,Interface,Enum等注释模板,Class模板部分修改如下,其余的举一反三进行修改。以下所示的${DESCRIPTION}是自定义变量,会在创建类时请求输入
/** * Copyright (C), 2015-${YEAR}, XXX有限公司</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> * FileName: ${NAME} * Author: ${USER}</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> * Date: ${DATE} ${TIME}</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> * Description: ${DESCRIPTION} * History: * <author> <time> <version> <desc> * 作者姓名 修改时间 版本号 描述 */ # if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "") package ${PACKAGE_NAME};</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">#end</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-javadoc"><span class="hljs-comment"><span class="hljs-comment">/**</span></span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> * 〈一句话功能简述〉<br> </span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="17"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> * 〈${DESCRIPTION}〉 * * @author ${USER}</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="20"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> *</span><span class="hljs-javadoctag"><span class="hljs-comment"> <span class="hljs-doctag">@create</span></span></span><span class="hljs-comment"><span class="hljs-comment"> ${DATE} * @since 1.0.0 */ public class ${NAME} { }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
类注释模板修改配置图
类注释模板修改效果图
2.方法注释模板修改
在File->Settings->Editor->Live Templates下添加自定义Template Group,并在自定义Template Group下添加自定义Template,具体配置如下图所示
详细配置参数
Template text内容如下: /** * 功能描述: <br> * 〈$END$〉 * $param$ * @return :$return$ * @since : 1.0.0 * @Author :$user$ * @Date : $DATE$ $TIME$ */ Edit Template Variables请求参数部分内容如下: groovyScript( "def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+='* @param ' + params[i] + ((i < params.size() - 1) ? '\\n ' : '')}; return result", methodParameters())
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
在完成如上配置后,只需在方法内执行/**+Enter键即可生成注释,切记这里说的是方法内部,因为methodParameters()的作用域只在方法内部,这也是Intellij IDEA比较蛋疼的一点,博主在网上找了很久也没发现一个好的解决方案,网上也有人推荐使用JavaDOC插件生成注释,有兴趣的朋友也可以尝试一下
方法注释模板修改效果图
代码格式化
代码格式化的快捷键为Ctrl+Alt+L,如果在类中执行代码格式化则会对代码进行排版,若焦点在类或者文件夹上,则会弹出格式化选项提示框,弹出框如下图所示:
Include subdirectories:是否对子目录也进行格式化 Optimize imports:优化导入的类和包 Rearrange enries:对代码顺序进行调整(将Filed放在 Method前边) Filters即配置过滤条件,表示对哪些文件进行格式化
- 1
- 2
- 3
- 4
- 5
自动导入所有包
在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,可以不用关注,一般来说你是用不上的
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
Maven配置
在File->Settings->Build,Execution,Deployment->Build Tools->Maven下对Maven进行配置,个人配置如下图所示
user settings file:指定 Maven的 settings .xml位置 local repository: 指定 Maven的本地仓库位置,是读取 settings .xml自动配置的 maven home directory:指定本地 Maven的安装目录所在,因为我已经配置了 MAVEN_HOME系统参数,所以直接这样配置 IntelliJ IDEA 是可以找到的,但是假如你没有配置的话,这里可以选择你的 Maven安装目录
- 1
- 2
- 3
VM options for importer:可以设置导入的VM参数,一般这个都不需要主动改,除非项目真的导入太慢了我们再增大此参数 Import Maven projects automatically:表示IntelliJ IDEA会实时监控项目的pom . xml文件进行项目变动设置,建议进行勾选 Sources和Documentation:表示在Maven导入依赖包的时候是否自动下载源码和文档,默认是没有勾选的也不建议勾选,原因是这样可以加快项目从外网导入依赖包的速度,如果我们需要源码和文档的时候我们到时候再针对某个依赖包进行联网下载即可,IntelliJ IDEA 支持直接从公网下载源码和文档的
- 1
- 2
- 3
Maven聚合工程搭建
1.创建父工程(不需要使用模板)
创建完父工程后删除父工程的src目录,该目录在聚合项目中无用
2.添加非web子模块
3.添加web子模块(使用maven web项目模板)
4.创建完查看工程目录结构如下
5.打开pom.xml文件 观察pom.xml文件的变化
生成serialVersionUID
默认情况下Intellij IDEA关闭了继承了Java.io.Serializable的类生成serialVersionUID的警告,如果需要提示生成serialVersionUID,那么需要做以下设置:在File->Settings->Editor->Inspections下勾选中Java->Serialization issues->Serializable class without ‘serialVersionUID’,将光标放到类名上按Atl+Enter键就会提示生成serialVersionUID了
代码提示忽略大小写
在File->Settings->Editor->General->Code Completion下设置Case sensitive completion为none
IDEA脱离版本控制
现在版本控制都有对应的优秀免费的开源客户端,而且稳定性更好。更多时候我们希望IDEA只是作为开发工具使用,而不参与版本控制,在File->Settings->Version Control下设置VCS为none即可脱离IDEA版本控制,配置如下
实用插件推荐
快捷键提示插件
Key promoter是在你通过非快捷键方式使用某功能时 为你提供快捷键建议 在开始记不住快捷键的情况下 强烈推荐安装
翻译插件
翻译插件 TranslationPlugin,支持支持中英互译、单词朗读,详细安装文档请参考:TranslationPlugin介绍与安装手册
热部署插件JRebel
JRebel热部署插件安装和使用请参考:JRebel热部署插件安装和使用
Maven Helper
Maven 辅助插件 用于查找Maven依赖冲突非常好用的一款插件 安装步骤请参考:Maven Helper安装使用
Properties to YAML Converter
在开发SpringBoot项目时,会需要把Properties的配置格式改为 YAML格式,Properties to YAML Converter提供了很好的支持
阿里巴巴代码规范插件p3c-pmd
详细安装和使用请参考:阿里巴巴代码规范插件p3c-pmd
开发必备快捷键
IntelliJ IDEA提供了丰富的快捷键组合来加快开发效率,但是快捷键太多琳琅满目也会给人无从下手的感觉。下面是我个人整理的在开发过程中必备的快捷键,(注:IDEA快捷键可能会与其他软件快捷键产生冲突,在开发过程中有必要进行取舍)此外IntelliJ IDEA 官方提供了学习IDEA快捷键的一个插件:IDE Features Trainer:https://plugins.jetbrains.com/plugin/8554?pr=idea,大家可以自行去插件库下载学习
Ctrl相关
快捷键 | 介绍 |
---|---|
Ctrl + B | 进入光标所在的方法/变量的接口或是定义处,等效于Ctrl + 左键单击 |
Ctrl + D | 复制光标所在行或复制选择内容,并把复制内容插入光标位置下面 |
Ctrl + F | 在当前文件进行文本查找 |
Ctrl + H | 查看类的继承结构 |
Ctrl + N | 通过类名定位文件 |
Ctrl + O | 快速重写父类方法 |
Ctrl + P | 方法参数提示 |
Ctrl + Y | 删除光标所在行或删除选中的行 |
Ctrl + W | 递进式选择代码块 |
Ctrl + Z | 撤销 |
Ctrl + 1,2,3…9 | 定位到对应数值的书签位置 结合Ctrl + Shift + 1,2,3…9使用 |
Ctrl + F1 | 在光标所在的错误代码出显示错误信息 |
Ctrl + F12 | 弹出当前文件结构层,可以在弹出的层上直接输入进行筛选 |
Ctrl + Space | 基础代码补全默认在Windows系统上被输入法占用,需要进行修改,建议修改为Ctrl + 逗号 |
Ctrl + / | 注释光标所在行代码,会根据当前不同文件类型使用不同的注释符号 |
Alt相关
快捷键 | 介绍 |
---|---|
Alt + Q | 弹出一个提示,显示当前类的声明/上下文信息 |
Alt + Enter | 根据光标所在问题,提供快速修复选择 |
Shift相关
快捷键 | 介绍 |
---|---|
Shift + F3 | 在查找模式下,定位到上一个匹配处 |
Ctrl+Alt相关
快捷键 | 介绍 |
---|---|
Ctrl + Alt + B | 在某个调用的方法名上使用会跳到具体的实现处 |
Ctrl + Alt + L | 格式化代码 可以对当前文件和整个包目录使用 |
Ctrl + Alt + M | 快速抽取方法 |
Ctrl + Alt + O | 优化导入的类和包 可以对当前文件和整个包目录使用 |
Ctrl + Alt + T | 对选中的代码弹出环绕选项弹出层 |
Ctrl + Alt + V | 快速引进变量 |
Ctrl + Alt + F7 | 寻找类或是变量被调用的地方,以弹出框的方式显示 |
Ctrl + Alt + 左方向键 | 退回到上一个操作的地方 |
Ctrl + Alt + 右方向键 | 前进到上一个操作的地方 |
Ctrl+Shift相关
快捷键 | 介绍 |
---|---|
Ctrl + Shift + F | 根据输入内容查找整个项目或指定目录内文件 |
Ctrl + Shift + H | 查看方法的继承结构 |
Ctrl + Shift + J | 自动将下一行合并到当前行末尾 |
Ctrl + Shift + N | 通过文件名定位打开文件/目录,打开目录需要在输入的内容后面多加一个正斜杠 |
Ctrl + Shift + R | 根据输入内容替换对应内容,范围为整个项目或指定目录内文件 |
Ctrl + Shift + U | 对选中的代码进行大/小写轮流转换 |
Ctrl + Shift + W | 递进式取消选择代码块 |
Ctrl + Shift + Z | 取消撤销 |
Ctrl + Shift + / | 代码块注释 |
Ctrl + Shift + + | 展开所有代码 |
Ctrl + Shift + - | 折叠所有代码 |
Ctrl + Shift + 1,2,3…9 | 快速添加指定数值的书签 |
Ctrl + Shift + F7 | 高亮显示所有该选中文本,按Esc高亮消失 |
Ctrl + Shift + Space | 智能代码提示 |
Ctrl + Shift + Enter | 自动结束代码,行末自动添加分号 |
Alt+Shift相关
快捷键 | 介绍 |
---|---|
Ctrl+Alt+Shift相关
快捷键 | 介绍 |
---|---|
其他
快捷键 | 介绍 |
---|---|
F2 | 跳转到下一个高亮错误或警告位置 |
F3 | 在查找模式下,定位到下一个匹配处 |
F4 | 编辑源 |
<div class="article-bar-bottom">
<div class="tags-box">
<span class="label">个人分类:</span>
<a class="tag-link" href="https://blog.csdn.net/m_m254282520/article/category/3025041" target="_blank">转载的文章 </a>
</div>
<div class="tags-box hot-word">
<span class="label">相关热词:</span>
<a class="tag-link" href="https://blog.csdn.net/qq_35246620/article/details/62264067" target="_blank">
intellij </a>
</div>
</div>
<!-- !empty($pre_next_article[0]) -->
<div class="related-article related-article-prev text-truncate">
<a href="https://blog.csdn.net/m_m254282520/article/details/72953404">
<span>上一篇</span>模板网站 </a>
</div>
</div>
来源:oschina
链接:https://my.oschina.net/u/4358782/blog/3885053