IDEA环境设置

任何事物都有两面性,如何用好才是关键。IDEA为我们提供了丰富的功能,但不代表默认的配置就适合于你。我们应当根据自己的条件、需求合理的配置,从而驾驭好这匹悍马。让它成为我们编程的利器,而非障碍。下面就一些常用的配置做个说明。

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上的,可以参考:

https://intellij-support.jetbrains.com/hc/en-us/articles/206544879-Selecting-the-JDK-version-the-IDE-will-run-under

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都使用它。

如果调整不生效,可以参考:

https://intellij-support.jetbrains.com/hc/en-us/articles/207240985-Changing-IDE-default-directories-used-for-config-plugins-and-caches-storage

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健步如飞,变成真正的编程利器。

IDEA 环境设置的更多相关文章

  1. 现代3D图形编程学习-环境设置

    本书系列 现代3D图形编程学习 环境设置 由于本书中的例子,均是基于OpenGL实现的,因此你的工作环境需要能够运行OpenGL,为了读者能够更好的运行原文中的示例,此处简单地介绍了linux和win ...

  2. Python 2/3 安装与运行环境设置

    Python 2/3 安装与运行环境设置: 1.Python 软件源:https://www.python.org/    下载Win版本 https://www.python.org/downloa ...

  3. Eclipse开发环境设置(Maven+Spring MVC+Flex)

    1. 环境设置 1.1. Java环境设置 1)JAVA_HOME D:\GreenSoftware\Java\Java8X64\jdk1.8.0_91 2)PATH ;%JAVA_HOME%/bin ...

  4. ROS BY EXAMPLE 1 -- 环境设置与安装

    rbx1 package 的环境设置: sudo apt-get install ros-indigo-turtlebot-bringup \ ros-indigo-turtlebot-create- ...

  5. 调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置

    调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置 调试SQLSERVER (一)生成dump文件的方法调试SQLSERVER (三)使用Windbg调试SQLSERVER ...

  6. DB2环境设置

    作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.级别对应 • Environment variables at the operating system l ...

  7. paip.环境设置 mybatis ibatis cfg 环境设置

    paip.环境设置 mybatis ibatis cfg 环境设置 三部分 //////////1. 电泳.... ............2. 猪配置文件  com/mijie/homi/searc ...

  8. Hadoop集群(第7期)_Eclipse开发环境设置

    1.Hadoop开发环境简介 1.1 Hadoop集群简介 Java版本:jdk-6u31-linux-i586.bin Linux系统:CentOS6.0 Hadoop版本:hadoop-1.0.0 ...

  9. Cocos开发中Visual Studio下HttpClient开发环境设置

    Cocos2d-x 3.x将与网络通信相关的类集成到libNetwork类库工程中,这其中包括了HttpClient类.我们需要在Visual Studio解决方案中添加libNetwork类库工程. ...

  10. Cocos开发中Visual Studio下libcurl库开发环境设置

    我们介绍一下win32中Visual Studio下libcurl库开发环境设置.Cocos2d-x引擎其实已经带有为Win32下访问libcurl库,Cocos2d-x 3.x中libcurl库文件 ...

随机推荐

  1. RAC环境下误操作将数据文件添加到本地存储

    今天碰到个有意思的事情,有客户在Oracle RAC环境,误操作将新增的数据文件直接创建到了其中一个节点的本地存储上. 发现网上去搜的话这种问题还真不少,对应解决方案也各式各样,客户问我选择哪种方案可 ...

  2. 如何滚动更新 Service?- 每天5分钟玩转 Docker 容器技术(102)

    在前面的实验中,我们部署了多个副本的服务,本节将讨论如何滚动更新每一个副本. 滚动更新降低了应用更新的风险,如果某个副本更新失败,整个更新将暂停,其他副本则可以继续提供服务.同时,在更新的过程中,总是 ...

  3. sql关键词的执行顺序

    执行顺序:FROM>ON>JOIN>WHERE>GROUP BY>WITH CUBE or WITH ROLLUP>HAVING>SELECT>DIST ...

  4. 在网站开发中经常用到的javaScript技术

     1>屏蔽功能类 1.1 屏蔽键盘所有键<script language="javascript"><!--function document.onkeyd ...

  5. Subquery returns more than 1 row

    Subquery returns more than 1 row表示子查询返回了多行数据 例如: select * from table1 where table1.colums=(select co ...

  6. LVM挂载失败mount: you must specify the filesystem type

    因意外原因导致机器重启,机器起来后发现磁盘挂载没有了,挂载,结果报错 [root@all /]# mount /dev/hdc2 /mnt/cdrom mount: you must specify ...

  7. 适合Linux新手的发行版有哪些?

    一个很古老的问题,找到适合的 Linux 发行版比简单的指出哪种 Linux 版本受欢迎更重要.为什么这么说?让我们设置一个情景:你有一位用户,很有可能,他过去大多数时候都是在 Windows 或者 ...

  8. Docker笔记三:基于LVS DR模式构建WEB服务集群

    安装ipvsadm 1. 先在宿主机上安装并以root来启动ipvsadm,每次要在容器中运行ipvs都需要先在宿主机上启动ipvs.如果直接进行2步操作将报出如下错误: Can't initiali ...

  9. Model中内部类meta详解

    Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性. 以下对此作一总结: Model 元数据就是 "不是一个字段的任何数据" -- 比如排序选项 ...

  10. Java-----关于线程池的使用

    关于线程的相关概念不在此阐述,请百度或谷歌之 对于学习线程来说,我认为从代码开始学习比较好,前提是有一定的技术的积累,否则请关闭不用再看了~ 线程池四种实现方式. ①可缓存线程池,如果线程池长度超过处 ...