从Eclipse转Intellij IDEA

本人使用IntelliJ IDEA其实并不过久,用了这段时间之后,以为的确非常好用。刚刚从Eclipse转过来的不少人开始可能不适应,我就把使用过程当中的一些经验和经常使用功能分享下,固然在看这篇以前推荐你先看完IntelliJ IDEA 的 20 个代码自动完成的特性, 这篇文章对自动完成的特性介绍的很是好,只是快捷键说明部分还能够更完善一些,能够照顾下默认绑定键位不一致的童鞋。本文在说明快捷键的时候是根据Mac OSX 10.5+的默认keymap,固然也会提供相关的文字说明,若是和个人绑定不一致的能够直接去keymap中搜索便可。java

基本设置

显示行号

这个之前在Eclipse中是个很简单的问题,转移到IntelliJ上之后的一些人也问过这个问题。使用一样的方式设置了之后发现只是对当前文件起做用了,打开另一个文件依然没有行号。就比如你只是在vim中执行命令set number,而不是在.vimrc中设置同样的效果。这个是须要在IDE Settings中设置下的,如图所示勾选便可:image 其余设置可参照该设置项勾选便可,例如显示空格等等.web

文件和导航关联

咱们在写代码的时候常常须要打开某个文件的时候,想在左边的文件树上自动打开关联到位置,这样很方便的找寻本目录下的其余文件或者其余的相关文件,其实这个IntelliJ提供了好几种解决方案,第一个就是和Eclipse同样的方式,以下:vim

  • 之前在Eclipse中设置也很简单,可是IntelliJ里面稍微有点不同,若是想临时一次的话,打开文件的时候点击下图的小地球(第一眼看的时候很像个小地球仪)图标便可image若是你想和Eclipse的那个同样,让这一切自动的话,那么在上图的浮层中能够看到两个选项AutoScroll to SourceAutoScroll from source,IntelliJ很人性化的分了两个设置在里面,你两个都勾选就是基本和Eclipse的功能保持了彻底一致,只是勾选一个天然也能够.tomcat

还有一种方式就是利用IntelliJ提供的Navigation Bar,IntelliJ不少功能操做均可以键盘化,这个就是喜欢键盘化操做的人的必备功能,操做方式就是打开文件的时候,使用快捷键⌘+UP (Jump to Navigation Bar),而后就会出现一个下拉,基本就是这个文件所在目录的文件列表,还可使用上下左右的键位来选择其余目录,是否是很酷?服务器

备注:此处建议把View > Navigation Bar的选项点掉,这样就使用快捷键以后就会在你鼠标的位置出现,感受会更输入一些,固然这样你就基本失去了使用鼠标的权利,这个须要你根据我的癖好使用便可。eclipse

快捷键使用

若是你是苹果电脑用户的话,建议你改为Mac OSX 10.5+的键位绑定,由于Mac OSX 10.5这个兼容Windows的版本的键位实在是太蹩脚了,用着是真难受,比如你默认习惯⌘+w是关闭标签,在这个键位绑定中居然是根据符号选择文本的一个快捷键.jsp

这里主要介绍几个可能你们经常使用的,或者是你可能并不知道IntelliJ中有的几个快捷键,特别经常使用的你直接参照官网的Keymap介绍Getting Started就能够了。学会在Keymap中本身查询须要的快捷键是主要的,不要每次都打开那个没用的百度,具体能够参照本文最后给出的连接。maven

Outline调出

之前在Eclipse中用的不少的一个快捷键就是ctrl+o,这样能够调出代码文件的全部成员变量和方法,而且能够支持搜索非常方便,IntelliJ这种基本的功能天然是有,新手的话还常常问,这个在IntellJ中的快捷键是⌘+F12 (File Structure)。若是你不是Mac OSX 10.5+键位绑定的话,小括号中的内容就是你能够去Keymap中去搜索的内容。编辑器

基本操做

  • 复制整行或者块:在Eclipse中使用ctrl+alt+Up,IntelliJ默认是⌘+D (Duplicate Line or Block),其实这个和Eclipse中的有差距,尤为是多行的时候或者选中内容的时候,不信你能够试试。因此你能够把Keymap中的Duplicate Lines定义上一个快捷键,我定义的是Option+D,这个键位在个人默认绑定中是没任何快捷键的,你能够本身绑定一个试试。ide

  • 根据符号选择文本:这个键位用的太多了,而且也是很是的好用,举个例子,有这样一行代码<name>SpringSource Milestones Proxy</name> 你光标在Milestones中的某一个位置,你想替换SpringSource Milestones Proxy为其余单词,假设想替换为Test XX,其实这样你只须要Option+Up (Select Word at Caret)两下就能够选中你想要的单词了,当你想在开发过程当中,你会发现这个键位用的太多了,多到换了其余没有这个键位的编辑器或者IDE上,非常不习惯。

  • 删除整行: 能够直接⌘+delete (Delete Line)或者利用IntelliJ智能的功能,剪切的快捷键,当本行选中文本的时候剪切`⌘+x会按照选中的文本实现剪切,可是你本行内无任何选中文本的时候会自动剪切整行,那么天然就相似一个删除本行的快捷键,可是这个其实仍是比较蹩脚的,建议使用⌘+delete

  • 想直接跳转到接口的实现方法: ⌘+option+鼠标单击或者⌘+option+B

  • 语句自动完成 Statements completion:这个在IntelliJ IDEA 的 20 个代码自动完成的特性中已经说明,这里仍是着重说下,由于的确很好用,也强烈推荐下,还有文中说的智能自动完成 ctrl+shift+Space,当给你的提示太多的时候,这个键绝对会给你惊喜.

  • 一样单词之间跳转:在Eclipse中的快捷键是ctrl+k,这个挺好用的,在IntelliJ中也不缺这个功能,可是在Mac OSX 10.5+的键位绑定中默认为空。听说Windows的默认绑定中是有绑定的,本身能够查询下,我本身绑定了一个⌘+ctrl+k (Find Word at Caret),没有的须要本身绑定一个,而后还能结合其余的键位实现上一个⌘+G (Find Next)下一个⌘+Shift+G (Find Previous)的功能.非常实用。

版本控制设置

咱们开发确定是有版本控制的,你们之前Eclipse的时候在本地文件和版本库不一致的时候,那么文件以及所在的文件夹都会出现一个表示,你们能很轻松的看到本地文件修改了哪一些,可是IntelliJ中默认是不能这样的。仅仅是给变化的文件在修改的时候提供了颜色上的变化,不包括其所在的各个父级文件夹哦,若是想和Eclipse同样的话须要以下图把设置勾选就能够了
vcs_show_dir_status其实看英文解释就能够明白了,这个默认开启之后若是想调整文件夹的显示颜色的时候就直接去Settings > Editor > Colors & Fonts > File Status中调整便可了,能够调整成本身喜欢的样子。

Java资源文件非英文的状况显示

IntelliJ在资源文件这方面我的以为也是完胜Eclipse的,在Resource Bundle方式下想修改一个属性是至关方便的,能够在一个操做界面上修改全部语言的属性,这一切都是自动完成的,以下图所示:resource_bundle

而且还很贴心的有一个排序和分组的功能,尤为是这个排序。

默认设置下也有一个问题,就是中文默认会显示为Unicode码的,其实勾选一个设置(Settings > File Encodings)就能够了,以下图:
resource_native_to_ascii

这样设置之后全部Unicode显示的就能够自动转化为其应该显示的语言了.

符合Maven约定结构的web项目如何更好的运行

记得刚开始用Eclipse的时候那时候默认是不支持Java EE项目的,必须使用一个MyEclipse的插件,直到今天好似还有人在用这个玩意,当年的时候每一个Web项目修改以后都必须Deploy一下,修改的 东西才会被执行,非常痛苦。后来就本身利用Tomcat插件,这个能够保证你修改jsp以及静态文件的时候不须要Deploy直接就能够被执行,由于 Tomcat的目录指向其实直接是指向到了你的项目文件,这样的确省心了不少。

在IntelliJ中若是你是传统的Java EE的结构(根目录下面有src,webMoudle这样的结构),那么在直接在Run Configurations中添加一个Tomcat便可,点击+号添加便可(固然须要注意虽然没搜索框,你输入字符会自动给你筛选结果),这样运行的时 候修改Java文件的话须要主动Make Project也就是⌘+F9 (Make Project).可是若是你是符合 maven约定的项目结构的话若是继续这样配置就很不理想了,每次修改了jsp文件居然也须要Make Project才能够,由于每次Make Project之后IntelliJ会自动给你DeployMent,这样好似又回到了几年前那种很麻烦的环境.

这个问题其实很容易解决,就是不要使用这种方式来运行你的web项目,既然符合maven结构的项目天然是使用maven或者gradle这种构建工具了,那么你须要利用maven的jetty的插件来运行项目便可了,以下图配置便可:idea-maven-run  

固然你也能够以下图直接点击运行就会自动添加一个:

maven-jetty-plugin-run
参看上图其实也没必须非用jetty,用tomcat6或者tomcat7的插件运行也能够。

Eclipse的web结构项目如何导入和运行

鉴于有一些用户还没转型Maven等来构建项目,固然我也衷心的说一句,构建这块仍是赶忙转了吧.由于不转的话还单独出来这个章节,而且有的操做仍是至关麻烦,下面也会讲到,仍是一一道来吧,导入的时候有两个选择而后我分两个部分说明,点击File > Import Project…,而后选择你的项目目录,点击OK,以下图:

image

使用新建项目来导入

这个方式图中所示的第一种,导入基本就是一路next到完成,可是你第一次也能够费点心思注意下每一步作了啥,例如帮你分析了jar有哪一些,若是 你使用了Spring还给你分析你的全部配置文件。最后完成之后项目就开始构建索引,等一切就绪之后咱们就能够完成的基本配置了,因为是web项目基本上 可以在Tomcat等服务器上跑起来就基本算成功了。主要几个点:

  • 处理好依赖关系,由于咱们没使用maven,因此你得本身动手丰衣足食了

  • 设置java文件的编译路径,若是须要的话

  • 添加你的Tomcat,运行成功

依赖关系

打开File > Project Structure ,本节咱们主要用到下图几个标红的部分:project_structure
咱们先了解下这几个主要部件:

  • SDKs:主要存放了咱们的JDK等,以下图(我本身下载带source的JDK,这样能够直接查看JDK相关的Java源代码):project_structure_sdks

  • Global Libraries:主要是公用的jar文件,例如servlet的几个jar可能每一个项目都须要,可是Eclipse的变量在此变得很差使,因此须要使用这个地方来配置,以下图参照使用便可:project_strutcture_global

  • Facets:在此不作介绍,若有须要后续添加

  • Libraries:这里基本是项目的库,不是全局的,导入的项目通常都会把你Eclipse中的。classpath中的全部的依赖都导过来做为一个lib库,而后应用到你的项目的模块中

  • Modules:这个基本包括了项目的模块,一般来讲Eclipse的项目结构中是单模块的

咱们须要作的配置主要在Modules中,其余的几个本身根据理解配置便可。

  1. 咱们先查看Modules中的Sources,以下图:project_structure_modules_sources
    把项目全部的源码都添加便可,图中所示个人项目中其实少了resource的文件夹,这样我选中resource而后点击Sources便可,这样就会在左边的Source Folders中添加一个resource的文件夹。

  2. 而后是Paths部分,这个主要是class的输出路径,默认是在根目录下的out文件夹中,若是项目中对配置文件的解析等有写死路径,必须严格遵循Java EE的规范的话,那么须要将此部分修改以下(若是不存在我假设的状况可忽略本步骤):
    project_structure_modules_paths

  3. 而后的Dependencies,就更好配置了,添加须要的依赖便可。

这些步骤完成之后咱们就能够点击Run > Edit Configurations ,点击左上角的+号,而后选择**Tomcat > Local Server **,这些步骤和Eclipse相似,选择相应路径等等,只须要注意一点就能够,就是须要添加一个DeployMent,以下图:
run_configurations_tomcat

若是是Windows的图中的DeployMent中的+号多是在右侧,点击以后会弹出对话框选择文件夹,选择eclipse默认的webMoudle文件夹便可(MyEclipse就是WebRoot文件夹),这个必定不能选错,不要选成项目的主文件夹,不然运行就不成功了,再而后ctrl+R运行便可。以debug方式运行就是ctrl+D

使用IntelliJ对Eclipse项目的支持导入项目

基本参照上个基本都相似,就是步骤比上个步骤要少点,若是出现问题参照上个章节便可。

HQL查询支持

之前Eclipse有个HQL的插件能够直接输入HQL语法,查询测试结果是否正确,在IntelliJ中你也能够,不过不须要任何插件默认提供支 持的,若是在导入项目的时候没有自动添加Hibernate的支持的话,那须要添加一下Hibernate的支持,鼠标选中项目,点击右键以下图:
image
点击选择Hibernate便可,若是没有Hibernate应该是项目已经自动添加了Hibernate的支持了。而后完成之后就能够以下图操做便可:
image
选中上面HQL图标,在出来的控制台输入你想输入的HQL便可了,同样能够自动完成的哦。

注意事项

  1. IntelliJ对于文件是默认随时保存的,基本不须要你⌘+s(这个键位默认是保存全部),因此须要注意不要随手不 当心把某个文件改了下,而后直接关闭标签了,其实你的无心的操做已经致使修改了文件,可能致使你在项目运行的时候发现一个很离奇的错误,我暂时没发现能够 关闭自动保存的设置,若是你对此非有强迫症的话,vim的插件可能会帮助到你。

  2. IntelliJ中的文件是实时和本地文件同步的,因此Eclipse的刷新功能就不要问了,由于在这根本不须要那个功能。有的编辑器会提醒你是否和本地文件更新,这里也是默认不给任何提醒的,只要你修改了,这里就会当即自动同步更新文件。

  3. 在主菜单File下面,有个奇怪的Power Save Mode,这里也说明下,这个顾名思义是省电模式。当你勾选此模式之后,IntelliJ不会给你完成任何自动完成的功能,例如原本你输入一个字符会自动 提示的,勾选之后就没有了,若是出现此问题的话能够考虑是否是本身手贱点过这个按钮噢,这个仍是比较适合开会的时候无聊看代码用的,又省电又不影响你看代 码。

  4. Eclipse中有个F2的功能,能够查看到Java文件定义,你在Spring的配置文件中可能须要配置这个值,可是在IntelliJ中这个是不须要的,由于对于Spring这样的支持非常完善,你只须要在class的属性中输入class的名字而后ctrl+空格 (Basic 这个在code的completion下面)自动就完成了全路径,在智能的条件下可能就不须要蹩脚的实现。

  5. 项目刚开始导入或者清除cache从新打开的时候,下面的状态栏部分会显示Indexing,这个时候你就等着就能够了,基本你想作的事情什么都不能作,别在这个时候着急点来点去,不过它索引的速度挺快的,别着急。

  6. Eclipse有个Save Actions的功能,主要是针对Java能够自动格式化以及优化import等功能,这个在IntelliJ上其实默认是没有的,想在IntelliJ中使用这功能可使用如下两个思路:

    • 利用宏录制,宏在开始之后你就格式化下代码,而后优化下import等操做,而后结束把宏定义一个⌘+s,不过问题就是无论什么文件都会执行这个宏,不只仅是java文件,我就是利用这个宏主要完成把tab转为空格。

    • 使用Eclipse Code Formatter的插件,这个插件基本和Eclipse默认的功能相似,可是也有少量区别,用户本身思量是否使用便可。

  7. 在Mac下IntelliJ代码区域是支持手势放大的,这个在给别人演示的时候非常方便。可是Run、Debug等视图的时候默认能使想到的就是手动的拖动大小,非常不便。你能够尝试下⌘+shift+up/down (Stretch to Top / Bottom),固然其余的project视图等的也均可以利用这个快捷键配置上下左右的方向键来配置使用,方便的很,强烈推荐使用。

几个技巧

  1. IntelliJ 不多会见到搜索框,其实在没有搜索框的地方你试试直接输入拼音,例如你在 Project 的视图,打开目录树之后你直接敲入字母,若是有符合条件的记录那么会有高亮显示的。

相关文章
相关标签/搜索