IDEA环境设置
任何事物都有两面性,如何用好才是关键。IDEA为我们提供了丰富的功能,但不代表默认的配置就适合于你。我们应当根据自己的条件、需求合理的配置,从而驾驭好这匹悍马。让它成为我们编程的利器,而非障碍。下面就一些常用的配置做个说明。
- IDEA 运行环境设置
- IDEA Settings
- 2.1 使用Eclipse的按键设置
- 2.2 使用子句安装的Maven,配置指定的本地仓库
- 2.3 使用Eclipse编译器替代javac
- 2.4 关闭validation
- 2.5 关联SCM client
- 2.6 插件管理
- 2.7 设置Plugin更新的Proxy
- 2.8 Plugin本地方式安装
- 2.9 集成diff, merge等比较工具
- 2.10 提高效率的快捷键
- 2.11 护眼设置
- 2.12 在Project中隐藏IDEA、Eclipse的配置文件
- 2.13 设置Java文件的copyright
- 2.14 使用File Template来减少一些必要的工作
- 2.15 使用Live Template自定义代码模板
- 2.16 关闭不必要的代码审查
- 2.17 文件编码、换行符设置
- 2.18 Tab键用4个空格替代
- 2.19 打开Class、Package的模糊导入
- 2.20 切换扁平风格与层叠风格的导航
- 2.21 关闭包浏览器中的show Members
- 2.22 编辑多个文件时展示风格
IDEA运行环境设置
1.1 设置IDEA使用的JDK
在使用IDEA 2017时,要求JDK版本在Java8上。所以要配置环境变量JAVA_HOME为JDK8的。但是在大家的项目中,通常可能并不是JDK8。为了能够区别开来,各用各的JDK。可以在机器上安装多个JDK版本。然后在环境变量中配置各自的环境变量即可。
在Windows上,IDEA查找环境变量的顺序:
32位的搜索顺序:
1)IDEA_JDK / phpSTORM_JDK / WEBIDE_JDK / PYCHARM_JDK / RUBYMINE_JDK / CLION_JDK / DATAGRIP_JDK 。其中WEBIDE_JDK应用于 WebStorm、PhpStore 的2016.1之前版本。
2)${idea.config.path}\\<product>.jdk文件
3)JDK_HOME环境变量
4)JAVA_HOME 环境变量
64位的搜索顺序:
1)IDEA_JDK_64 / PHPSTORM_JDK_64 / WEBIDE_JDK_64 / PYCHARM_JDK_64 / RUBYMINE_JDK_64 / CLION_JDK_64 / DATAGRIP_JDK_64 。其中WEBIDE_JDK应用于 WebStorm、PhpStore 的2016.1之前版本。
2)${idea.config.path}\\<product>64.jdk文件
3)JDK_HOME环境变量
4)JAVA_HOME 环境变量
至于Linux、Mac上的,可以参考:
1.2 JVM options设置
IDEA是Java程序,heap内存的大小对Java运行快慢很重要,要根据机器的情况适当的调整。
配置文件在${IDEA_HOME}/bin目录下的idea.exe.vmoptions (For 32位程序),idea64.exe.vmoptions(For 64位程序)。
我的机器(虚拟机)内存是2.7G,做如此配置,可以不卡。
如果机器内存足够大,可以调整-Xmx2G,不要吝啬。
1.3 IDEA System,Config文件位置调整
默认情况下,IDEA的运行时必要的数据文件(配置、index等)会放在系统的当前用户的home目录下(windows系统下是: c:\\Documents and Settings\\${User}\\.IntelliJIdea2017.3)。
项目中的文件通常会比较多,IDEA会为每个文件建立索引的,所以会占用不少的磁盘空间。我们可以将其转移到其它磁盘。
当你有一个SSD时,你为了让你的IDEA运行的更快,可以将这些文件放到SSD上。
怎么调整文件位置呢?
在${IDEA_HOME}/bin目录下有一个idea.properties文件,假设你要将目录 调整到D:/idea_data目录下,应该做如下调整:
1) 关闭IDEA
2) 去掉idea.config.path、idea.system.path前的注释。
3)将idea.config.path的值调整为d:/idea_data/config,将idea.system.path调整为d:/idea_data/system
4)从c:\\Documents and Settings\\${User}\\.IntelliJIdea2017.3目录下,将.IntelliJIdea2017.3目录下的内容全部拷贝到d:/idea_data目录下。
5)重启idea,在C盘并不会重新生成索引文件(这说明你的配置生效了)。
我的调整如下:
定义了一个新的配置项:myidea.data.dir,然后让idea.config.path,idea.system.path都使用它。
如果调整不生效,可以参考:
IDEA Settings
在工具栏或者File>Settings都可以打开idea软件设置。下面要调整在设置在Settings中进行。
2.1 使用Eclipse的按键设置
如果是从Eclipse转向IDEA的,对Eclipse按键已经熟知了,不想再花时间去研究IDEA的按键设置时,可以配置此项。
Settings 》Keymap,调整为Eclipse即可。
2.2 使用自己安装的Maven,使用指定的本地仓库
Eclipse可以指定自己安装的Maven,IDEA自然也是可以的了。调整方案与Eclipse上类似。具体如下:
Settings 》Build,Exection,Deployment 》BuildTools 》Maven
1) 设置maven home directory,
2) 设置User settings file
3) 修改local仓库。
修改完毕后,确认一下Path Variables中的MAVEN_REPOSITOR的值是否正确。具体方法:切到Settings > Appearance & Behavior > Path Variables区域后自然可见。
如果使用Gradle作为构建工具,调整方案类似。
2.3 使用Eclipse编译器替代javac
使用Eclipse编译器有如下好处:
1、即便代码有错,也是可以编译调试的。如果用过Eclipse,会有“process error,仍然要执行吗?“的提示框,就是这个原因。
2、可以增量编译,即只编译有改动的java文件。
3、利用多核cpu并行编译。
这些好处是javac不具备的,自然要选择它了。
调整方法:
Settings 》Build,Execution,Deployment 》Complier 》 Java Compiler
修改 Use compiler 为 Eclipse。
如果内存足够的话,可以同时开启Compile independent modules in parallel
2.4 关闭Validation
使用Eclipse时,我们通常会将validation关闭,目的是加快构建速度。特别是要关闭javascript的验证。使用IDEA了,同样要关闭校验了。设置方案:
Settings 》Build,Execution,Deployment 》 Validation ,
将Validate on build的勾去掉。
2.5 关联SCM client
IDEA 可以支持各种各样的SCM工具(也称为VCS工具),例如:CVS, Git, Subversion, Mercurial, Perforce, TFS (微软的一款产品)。但IDEA本身不含有这些SCM工具的客户端,这就需要我们接入相应的客户端之后才可使用。
集成SVN
下面以SVN为例,svn的客户端程序就是svn.exe,我们只需要想办法让IDEA找到它即可。
一般有两种方式:
1) 将svn.exe加入到系统的环境变量中,在IDEA Settings 》Version Control 》Subversion中将use command line client 打勾,并设置client为svn。
2)在IDEA Settings 》Version Control 》Subversion中将use command line client 打勾,并设置client为svn.exe在路径。
在我的机器上,之前安装有TortoiseSVN,它里面也是有svn命令行工具的,名字就叫svn.exe。所以我的配置就是:C:\\Program Files\\TortoiseSVN\\bin\\svn.exe
如果你本地安装的SVN客户端是其它的,只要找到它的命令行可执行程序,按照上面方法接入即可。
如果你本地安装的也是TortoiseSVN,但在TortoiseSVN的bin目录下,没有找到svn.exe,那说明你是没有安装svn的命令行的,就需要启动TortoiseSVN的安装程序,选择command line模块安装即可。
集成Git
集成Git,同样也有两种方式:
1)将git.exe加入到系统的环境变量中,在IDEA Settings 》Version Control 》Subversion中设置client为git。
2)在IDEA Settings 》Version Control 》Git中设置client为git.exe在路径。
例如我将Path to Git executable设置为:D:\\Program Files\\Git\\cmd\\git.exe
2.6 插件管理
IDEA和Eclipse能够得到广泛的应用的原因之一,就是有良好的插件机制。可以集成各种插件,当然了也有很多是我们可能根本不需要的插件,可以移除之。
Settings 》 Plugins,在这里可以进行插件安装、卸载、启用、禁用操作。
安装插件可以采用在线安装、本地安装两种方式。本地安装方式参见2.8小节。
如果在下载插件过程中,发现很慢,可以设置Http Proxy的.参考2.7小节.
2.7 设置Plugin更新的Proxy
在下载国外的资源时,为了加快下载速度,通常会从两个方向入手。1)从国内的mirror下载。2)使用Proxy来下载。IDEA在插件安装时,是可以自定义HTTP Proxy的。在Settings 》Plugins 》install JetBrins plugin下有个Http Proxy Settings。
大家常用的HTTP Proxy就要数影梭(ShadowSocks)了。使用ShadowSocks也可以上google的,还是推荐大家用一下的。
2.8 插件本地方式安装
在线安装方式不用多说,选择要安装的插件自行安装即可。如果你的机器不能联网,譬如说在公司的内网情况下,想要安装期望的插件时,就需要先下载好插件,然后选择本地方式进行安装。
在讲本地安装方式前,先说一下IDEA安装插件的流程,以及相关目录。
${IDEA_HOME}/plugins 这个目录是IDEA内置插件(安装好IDEA时已安装的插件)的目录。
${IDEA_CONFIG_PATH}/plugins 这个目录是你自己安装的插件的目录(不论在线安装,还是本地安装)。
${IDEA_SYSTEM_PATH}/plugins 这个目录是你将要安装的插件的目录。
你在线安装的插件,下载完成后,就在这个目录下,此时并没有安装。而是把要安装这个插件的这个动作写在一个action.script里(这是个二进制文件,不能直接看到内容的,也不需要看到)。在重启IDEA时会根据这个action.script里的配置(配置了要安装的插件ID,位置)来进行安装,安装完成后的插件放在${IDEA_CONFIG_PATH}/plugins目录下。重启完成后,之前下载的插件包会被清除的。
${IDEA_CONFIG_PATH}、${IDEA_SYSTEM_PATH} 的具体路径参见1.3节。
下面以findbugs插件为例,来说明如何本地方式安装插件。
Findbugs 插件下载页:https://plugins.jetbrains.com/plugin/3847-findbugs-idea
1)将findbugs下载到磁盘上,下载位置无限制(本地安装方式,不需要放在${IDEA_SYSTEM_PATH}/plugins目录下)。
2)Settings 》Plugins ,选择 install plugin from disk,然后找到下载的插件包。
3)重启IDEA。
插件检索:对于在线安装自不必说,本地安装插件,可以在https://plugins.jetbrains.com/进行查找。
2.9 集成Diff、Merge 等比较工具
相信拥有多年开发经验的你,对于Beyond Compare必定不陌生的。如果你已习惯了使用Beyond Compare作为常用的比较工具,你也是可以集成到IDEA中的。具体方法:
切到Settings 》Tools 》Diff & Merge 》External Diff Tools:
在Use external diff tool前打勾,设置BCompare.exe的路径。
在Use external merge tool前打勾,设置BCompare.exe的路径。
如果你熟悉其它diff tool 或者merger tool,也同样可以设置的。
2.10 提高效率的快捷键
1) 内容选择
A)Shift + Ctrl + 向左、向右
这组快捷键在绝大多数编辑器里都有的,IDEA,Eclipse,Word,EditPlus等。它用于根据单词来选择内容。
B)Shift + 向上、向下
这组快捷键在绝大多数编辑器里都有的,它用于根据单词来选择内容。
C)Shift + Alt + 向上、向下
与Shift + 向上、向下有不同的效果
D)Ctrl + A 全选,几乎每个软件都支持吧
2) 注释代码
Ctrl + / 用于对代码加单行注释
2.11 护眼设置
研究表明(不知道谁研究的),RGB设置为(R:199,G:233,B:204),蓝光对眼伤害减小到最弱,我在Eclipse使用了该保护色2年时间了,已经习惯了。切到IDEA上,同样设置了。
设置方式:
Settings 》Editor 》 Color Scheme 》 General
(有的版本可能在:Settings 》Editor 》 Color and Fonts》 General )
这里的Scheme代表配色主题,Scheme选择default,编辑Text区域的Default text为 C7EDCC 或者设置RGB为(R:199,G:233,B:204)。
2.12 在Project中隐藏IDEA、Eclipse的配置文件
在任何IDE中开发Project都会有IDE自身的配置文件,Eclipse、NetBeans都是这样,IDEA也不能例外。然而这些文件我们平时是不会编辑的,对于有代码洁癖的人可能不希望看到这些与项目无关的文件,这时不要忘了,IDEA可以将它们隐藏的。
Settings 》Editor 》File Types,在这个页面里有一个 Ingore files and folder,用它可以做到的。
2.13 设置Java文件的Copyright
作为公司项目,在文件中加入copyright是必不可少的,使用它的好处也是不言而喻的。IDEA对这个也内置了支持,确实是amazing,不得不说为开发者考虑了不少。
Settings 》 Editor 》Copyright 》Copyright Profiles,在这里你可以创建公司使用的copyright信息,并指定一个唯一name。
然后在Settings 》 Editor 》Copyright 将default project copyright 指定为你创建的copyright。如此一来,在Settings 》 Editor 》Copyright 》 Formatting 下的那些类型的文件(Aspectj, CSS, ES6, Groovy, Java, html, JavaScript, JSP, JSPX, Less, Sass, Properties, TypeScript, XML)都可以根据它们各自的注释符号使用这个copyright。
在Settings 》 Editor 》Copyright 》 Formatting 中,可以为不同类型的文件指定copyright的位置、注释格式等。
如果要在copyright中使用变量,例如使用日期变量,可以用$today
配置完毕后,
1)在创建相关文件时就会自动加上相关copyright的。
2)右键相关目录、相关文件时,可以在菜单中使用update copyright命令。
3)在菜单栏Code下,也可以使用update copyright命令。
2.14 使用File Template来减少一些必要的工作量
每种文件,都有其自身的格式。例如HTML、XML、pom.xml等,这些东西是必不可少的,但我们平时只关注其填充的内容。如果有一个文件模板,能够把这些格式化的内容预先配置好,这样就会为日常开发又减少不少的工作量的。
具体的设置方法:Settings 》 Editor 》 File and Code Templates 。在该区域可以配置file 模板。
文件模板采用的是Apache Velocity 模板语言(类似于Freemarker的)来开发的,如果对此有了解,相信设置file template并不是什么难事。
如果对Apache Velocity没有什么了解的,可以参考IDEA官方 help手册:https://www.jetbrains.com/help/idea/creating-and-editing-file-templates.html,根据它也可以快速掌握file template的编写技巧。
2.15 使用Live Template自定义代码模板
在编写代码时,对于循环(for,foreach,while)等方式,SQL文件有insert。熟悉Eclipse的可能知道main可以快速打出来main方法,syso可以快速打出来输出语句。IDEA也支持这些的,但是他们变成了psvm, sout了。另外代码中最长用的当属logger了, 在写logger时通常要判定是否相关级别启用了,例如:
// 以SLF4j写法为例: // 声明Logger private static final Logger logger = LoggerFactory.getLogger(Xxx.class);
// 使用logger if(logger.isDebugEnabled()){ logger.debug(“xxxx”); } |
对于这个我们完全可以利用live template来辅助生成代码。
例如我是这样定义的logger的:
Logger声明:
用defl来触发logger对象的定义,代码模板如下:
private static final Logger logger = LoggerFactory.getLogger(Xxx.class);
使用时自己只需要替换一下类名即可。
用li来触发info日志,代码模板如下:
If(logger.isInfoEnabled()){
logger.info(“”);
}
使用时自己只需要写相关日志既可。同理,对于不同的日志级别,都设置这样一个模板即可。
2.16 关闭不必要的代码审查
使用IDEA时,它能帮我们分析、检查各种文件中可能存在的问题,譬如说可能存在NPE、代码需要抽取(表现在有大量重复)等。要查看文件中有哪些问题,在编辑窗口的右侧即可看到,通常warn用黄色,error用红色。这样可以帮助我们减少代码中的Bug。
但是我们不能对此依赖太多,也就是不能让它检查太多内容了,否则IDEA会变慢,内存不足的情况会严重影响开发效率。
这其中让人最烦的是泛型检查了,在JDK7中的泛型加入了类型推断,如果你的代码里有JDK7之前的,例如List<String> arr = new ArrayList<String>();后面的尖括号中的String通常会写的,但是IDEA就给你标warn了。
总之,我们需要将不必要的检查去掉的。具体方式:在Settings > Editor > Inspections 区域,可以根据warn的提示,来快速搜索是哪条规则报出来的,将其关闭即可。
2.17 文件编码、换行符设置
通常我们会将整个工作空间下的文件设置为UTF8编码、换行符设置Unix下的换行符。
文件编码统一:
切到Settings > Editor > File Encodings 区域,将Global Encoding、Project Encoding、Properties Files 的文件编码统一为UTF8
换行符统一:
切到Settings > Editor > Code Style 区域,将 line separator 设置为:Unix and OS X
2.18 Tab键用4个空格替换
有的开发团队,会要求制表符tab键用4个空格替换。设置方式:
切到Settings > Editor > Code Style ,在其下为各种语言的文件设置tab键、缩进等。
将他们的Use tab character 勾掉即可。
2.19 打开Class,Package的模糊导入
在使用Eclipse时,如果有类没有导入,可以通过两种方式导入类。
1) 鼠标放上去,显示可能存在的导入列表供你选择
2) 使用Shift + Ctrl + O 自动识别导入。
在使用IDEA时,发现这点做得不如Eclipse好。
1) Alt + Enter 只能用一次。
2) 又不能自动推断。其实并不是不能,而是模糊推断的功能被关闭了。
打开方式:切到 Settings > Editor > General > Auto Import 区域,选择 Add unambiguous imports on the fly。
2.20 切换扁平风格与层叠风格的导航
在IDEA的导航栏的展现风格,和Eclipse一样,支持两种风格:扁平式、层叠式。
扁平式:包名整个平铺展现,便于使用IDEA包搜索快速检索。这种方式适合于项目结构、包名并不是很清晰的开发者。有密集恐惧症的人不适合。
层叠式:包名以树状方式展现。这个方式适合于项目结构,包名清晰的开发者。
切换方式:
在包浏览器中设置,勾上Flatten Package是扁平风格,勾掉是层叠风格。
2.21 关闭包浏览器中的 show Members
个人认为这个是多此一举了,开启他会拖慢目录下文件展开速度的。此外,有文件Structure这个窗口,这个完全可以满足需要的。
关闭方式:在包浏览器中设置,勾掉show Members
2.22 编辑多个tab时展示风格
在开发过程中,打开多个文件是很平常的。在大多数编辑器中,为了在编辑器尽可能多的展示文件内容,打开多个文件时,会隐藏一些。在IDEA中,可以选择两种风格:1)隐藏显示不下的文件,2)铺开所有的文件。这个可以根据个人喜好进行调挣。
调整方式如下:
切换到Settings > Editor > General > Editor tabs区域,可以看到有这样一个开关:Show tabs in single row。
用了几天时间,目前遇到的问题,就这么多。欢迎大家补充,让我们的IDEA健步如飞,变成真正的编程利器。