一、快捷键
有蛮多操作,IntellIJ IDEA并没有给我们设置默认快捷键,需要使用者自己去定义快捷键。比如说:Rebuild Project
- Compare With Branch
为了能在IntellIJ IDEA里进行无鼠标编程,很多程序员都会自定义快捷键,但是有三个地方你可能需要注意一下。
-
经常会出现快捷键与其他应用的快捷键冲突的情况;
-
自定义太多快捷键了,你也不太好记住;
-
使用其他同事的IDEA时(比如说帮忙定位问题),你自定义的快捷键没法用。
其实在IntellIJ IDEA里的每个操作,都可以看出一个action。我们可以使用ctrl+shift+a来输入我们要使用的操作。比如说,上面提到的Rebuild Project。你可以先使用ctrl+shift+a快捷键,然后输入Rebuild Project并回车,即可执行你要的操作。
image
对我自己来说,除了基础的快捷键,ctrl+shift+a是我用最频繁的快捷键了。
2.使用ctrl+alt+h要小心
ctrl+alt+h非常好用,但是有个坑,当同一个方法里,调用某个方法多次的时候,比如说下面的代码:
public class TestService { public void test1() { System.out.println("aa"); } public void test2() { test1(); } public void test3() { test1(); //无数业务操作后,再次调用test1()方法 test1(); }}
如果我们想知道有哪些地方调用了test1()方法,使用ctrl+alt+h无法正确列出来的。因为ctrl+alt+h只能告诉你调用的层次。
image
ctrl+alt+h只是会在某个隐蔽的地方,告诉你,test3()方法调用了test1()方法两次。这样就很容易坑到开发者,因为大部分人可能不太注意后面的调用次数,导致改bug的时候,以为全部都改了呢?
如果你想精确的列出到底哪些地方调用了test1()方法,你需要使用alt+f7这个快捷键。
image
尤其是我们在阅读极其复杂的业务代码时,使用alt+f7就非常合适。
当然alt+f7也可以作用在变量上,列出某个类里,哪些地方使用了该变量。
3.ctrl+alt+h被问的最多的两个问题
使用ctrl+alt+h怎么跳转到源代码,又如何重新回到ctrl+alt+h对应的视图里面。
调转到源代码
image
其实很简单,当你使用ctrl+alt+h后,使用向下或者向上箭头,选择某个调用,然后按下f4即可跳转到源代码。
如何回到ctrl+alt+h视图
这个真心被问了好几百遍,其实很简单,当你使用f4跳转到源代码后,直接使用alt+8就可以跳回去了。就又可以继续看下一个调用的地方了。
4.快速找到Controller方法
如果你的项目里有非常多的controller,里面有非常多的http或者resful方法。如何快速找到这些方法呢?这个时候,ctrl+alt+shift+n就可以派上用场了。
比如说,你依稀记得入账单相关的接口,都有个bill的url路径,那么使用ctrl+alt+shift+n后,直接输入/bill即可。
image
当你在成千上万的Controller里寻找方法时,这一招就可以大大提高效率。
5.了解项目关键业务流程方法利器-bookmark
在一些创业公司里,很多核心的模块都是放置在同一个项目里的。比如说,订单相关的接口,支付相关的接口,商品相关的接口。这个时候,你可以将这些关键业务方法,使用bookmark统一放置到某个地方,方便你阅读。
image
那么如何使用快捷键来达到上面的效果呢?
public class TestService { public void test1() { System.out.println("aa"); } public void test2() { test1(); } public void test3() { test1(); test1(); }}
比如像上面的方法,我想将test1()方法放置到bookmark里,可以通过如下操作来完成:
1、使用ctrl+f12,列出该类的所有方法,然后输入test1,将光标定位在test1上;
2、按下f11,将test1()加入到bookmark;
3、按下shift+f11,将bookmark列表弹出来;
4、按下ctrl+enter修改bookmark名字。
6.只留下一个tab
这个是我目前正在用的,就是整个工程里面,只有一个代码tab。也即是说,无论你打开多少个文件,都是在同一个tab里面显示。如果这样设置了,有些网友可能会问,我想看看我最近操作哪些类了,怎么看? 可以直接使用ctrl+e来显示最近操作的文件。
我是比较推荐只是保留一个代码tab的,非常简洁。如果每打开一个文件,就是一个新的tab,很快你就会乱掉,而且还得关闭部分tab。
可以通过下面的方式来设置成用一个tab显示代码。按下ctrl+shif+a,然后输入Editor Tabs,然后回车进入编辑页面。
image
然后在Placement那里,选择None
image
7.如何阅读又长又臭的代码
由于历史原因,项目里总会存在那种无法理解的,又长又臭的业务代码。阅读这种代码,简直就是一种煎熬。但是在IntellIJ IDEA里,只要使用5个小技巧,便可大大提高阅读质量和速度。
7.1 创建任意代码折叠块
image
像上面的for循环,我想直接将其折叠起来,因为代码太长的时候,使用折叠块,可以帮助你快速理清代码的主脉络。
可以将光标定位在for循环的左大括号里,然后使用ctrl+shift+. 即可。
如果你想让这个折叠快消失,直接使用ctrl 加上一个+即可。
7.2 大括号匹配 ctrl+]或者ctrl+[
这个也非常有用,因为代码太长,某个for循环,可能已经撑满整个屏幕了。这个时候,找到某个大括号对应的另外一边就很费劲。你可以将光标定位在某个大括号一边,然后使用ctrl+]或者ctrl+[来回定位即可。
7.3 使用ctrl+shift+i
这个也是阅读长段代码的法宝,当你阅读的代码很长的时候,突然想看代码里某个类的定义,那么直接使用ctrl+shift+i,就可以在当前类里再弹出一个窗口出来。比如说:
image
在这个代码块里,你想看看TestTemp类的定义,那么将光标定位在TestTemp上,然后直接使用ctrl+shift+i,就会弹出如下的窗口。
image
按下esc,可以关闭这个窗口。
7.4 使用alt+f7
可以列出变量在哪些地方被使用了。
7.5 跳到父类接口
我们经常会定义一个service 接口,比如说UserService,然后使用一个UserServiceImpl类去实现UserService里面的接口。
public interface UserService {
void test1();
}
public class UserServiceImpl implements UserService {
@Override
public void test1() {
}
}
那么在UserServiceImpl里的test1()方法上,如何跳转到UserService的test1(),直接使用ctrl+u即可。
7.6 后悔药
如果修改了部分代码,突然觉得不合适,使用ctrl+z回滚掉后。突然又觉得刚才的修改是可以的。那你可以使用ctr+shift+z再次恢复你刚才修改的内容。
7.7 切换皮肤最快的方式
可以直接使用ctrl,然后加上一个,就可以立刻弹出如下界面: 选择Color Scheme`,然后回车,就可以弹出修改皮肤的窗口。
image
二、Intellij IDEA 33 个 配置!
1.设置maven
1.在File->settings->搜索maven
2.Mavan home directory--设置maven安装包的bin文件夹所在的位置
3.User settings file--设置setting文件所在的位置
4.Local repository--设置本地仓库
2.IDEA 设置代码行宽度
1.在File->settings->Editor->Code Style
2.有人会问,如果输入的代码超出宽度界线时,如何让IDE自动将代码换行?``有两种方式!
3.第一种,在上述的“Right margin (columns)”的下方,有“Wrap when typing reaches right margin”选项,选中它,是什么效果呢?
4.随着输入的字符的增加,当代码宽度到达界线时,IDEA会自动将代码换行。
5.第一种方式是在输入代码时触发,还有第二种方式,在File->settings->Code Style->Java中,选中“Wrapping and Braces”选项卡,
6.在“Keep when reformatting”中有一个“Ensure rigth margin is not exceeded”,选中它,是什么效果呢?
7.从配置项的字面意思很容易理解,在格式化Java代码时,确保代码没有超过宽度界线。
8.即输入的代码超出界线后,
3.IDEA 提示不区分大小写
1.首先打开File----->setting
2.然后,输入:``sensitive
3.将右侧的 case sensitive completion 修改为NONE
4.IntelliJ强制更新Maven Dependencies
1.Intellj 自动载入Mave依赖的功能很好用,但有时候会碰到问题,导致pom文2.件修改却没有触发自动重新载入的动作,此时需要手动强制更新依赖。
如下:
1.手动删除Project Settings里面的Libraries内容;
2.在Maven Project的试图里clean一下,删除之前编译过的文件;
3.项目右键-》Maven-》Reimport
4.Ok, 此时发现依赖已经建立!
5.idea的环境配置默认保存位置
1.idea的环境配置默认保存位置:C:\Users\xxxxxxxxx\.IntelliJIdea14 ,xxxxxx代表用户目录,``2.可以对该目录进行备份,一但环境出问题恢复此配置即可.``3.可以在%IDEA_HOME%/bin/idea.properties中修改该配置路径.
6.隐藏不想看到的文件或者文件夹(类似eclipse的filter功能)
intellij idea 隐藏不想看到的文件或者文件夹(类似eclipse的filter功能)``打开intellij -->:>File -->>Settings-->>搜索File Type
7.修改为Eclipse快捷键
File -> Settings -> Keymap => Keymaps改为 Eclipse copy
8.修改默认设置--default setting
修改默认设置--default setting
9.修改智能提示快捷键
1.File -> Settings -> Keymap -> Main menu -> Code -> Completion -> Basic=>修改为Ctrl+Alt+Enter ``2.保存时把冲突的Remove掉。``3.File -> Settings -> Keymap -> Editor Actions -> Complete Current Statement=>修改为Ctrl+
10.查找快捷键冲突问题处理
1.File -> Settings -> Keymap -> Main menu -> Edit ->Find =>修改Find...和Replace...分别改为Ctrl+F 和Ctrl+R
11.显示行号
1.File -> Settings ->Editor ->General -> Appearance =>Show line numbers选中
12.代码智能提示,忽略大小写
File -> Settings -> Editor -> Code Completion里把Case sensitive completion设置为None就可以了
13.用*标识编辑过的文件
1.Editor–>General –> Editor Tabs``2.在IDEA中,你需要做以下设置, 这样被修改的文件会以*号标识出来,你可以及时保存相关的文件。``3.“Mark modifyied tabs with asterisk
14.关闭自动代码提示
1.Preferences => IDE Settings => Editor => Code Completion => Autopopup documentation in (ms)
15.常用快捷键
1.Ø Top #10切来切去:``Ctrl+Tab``2.Ø Top #9选你所想【选中上下文相关联代码】:``Ctrl+W``3.Ø Top #8代码生成:``Template/Postfix +Tab``4.Ø Top #7发号施令:``Ctrl+Shift+A``5.Ø Top #6无处藏身:``Shift+Shift``6.Ø Top #5自动完成:``Ctrl+Shift+Enter``7.Ø Top #4创造万物:``Alt+Insert``使用前三名!``1.Ø Top #1智能补全:``Ctrl+Shift+Space``2.Ø Top #1自我修复:``Alt+Enter``3.Ø Top #1重构一切:``Ctrl+Shift+Alt+T``其他辅助``1.以上这些神键配上一些辅助快捷键,即可让你的双手90%以上的时间摆脱鼠2标,专注于键盘仿佛在进行钢琴表演。``这些不起眼却是至关重要的最后一块拼图有:``2.Ø 命令:``Ctrl+Shift+A可以查找所有Intellij的命令,并且每个命令后面还有其快捷键。``所以它不仅是一大神键,也是查找学习快捷键的工具。``3.Ø 新建:``Alt+Insert可以新建类、方法等任何东西。``4.Ø 格式化代码:``格式化import列表Ctrl+Alt+O,格式化代码Ctrl+Alt+L。``5.Ø 切换窗口:``Alt+Num,常用的有1-项目结构,3-搜索结果,4/5-运行调试。``Ctrl+Tab切换标签页,Ctrl+E/Ctrl+Shift+E打开最近打开过的或编辑过的文件。``6.Ø 单元测试:``Ctrl+Alt+T创建单元测试用例。``7.Ø 运行:``Alt+Shift+F10运行程序,Shift+F9启动调试,Ctrl+F2停止。``8.Ø 调试:``F7/F8/F9分别对应Step into,Step over,Continue。``此外还有些我自定义的,例如水平分屏Ctrl+|等,和一些神奇的小功能9.Ctrl+Shift+V粘贴 很早以前拷贝过的,Alt+Shift+Insert(块选)进入到列模式进行按列选中
16.svn 不能同步代码问题修正
File -> Settings ->Subversion ->General => Use command line client 选中``1.使用command line方式需要指定svn.exe的路径,例如:D:\tools\TortoiseSVN\bin\svn.exe``2.注意,安装TortoiseSVN时路径中不要带空格,例如:C:\Program Files\TortoiseSVN\bin\svn.exe就会报错.``3.安装TortoiseSVN选择全部安装组件,否则可能没有svn.exe
17.设置idea的SVN忽略掉*.iml文件
1.Editor->File Types=>Ignore files and folders增加*.iml;``2.在lgnore files and folesrs中输入.idea;注意要";"结尾。``你就可以隐藏.idea文件夹
18.改变编辑文本字体大小
File -> settings -> EDITOR COLORS & FONTS -> FONT -> SIZ
19.IDEA编码设置
1.FILE -> SETTINGS -> FILE ENCODINGS => IDE ENCODING``2.FILE -> SETTINGS -> FILE ENCODINGS => Project Encoding``3.FILE -> SETTINGS -> FILE ENCODINGS => Default encoding for properties files``4.FILE -> SETTINGS -> FILE ENCODINGS => Transparent native-to-ascii conversion
20.Live Templates
System.out.println 快捷输出``“abc”.sout => System.out.println("abc");``在eclipse中使用方式为:``sysout=> System.out.println();
for循环``List<String> list = new ArrayList<String>();``输入: list.for 即可输出``for(String s:list){}
21.配置tomcat参数
1.vm options: -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
22.idea安装插件的方法
1.以IntelliJ IDEA 14.0.1安装findbugs插件为例:``2.(1)在线方式:进入File->setting->plugins->browse repositorits 搜索你要下载的插件名称,``3.右侧可以找到下载地址,完成后按提示重启即可.``4.(2)离线安装: 下载findbugs插件地址:``5.http://plugins.jetbrains.com/plugin/3847,``6.将下载的FindBugs-IDEA-0.9.994.zip,安装插件:``进入File->setting-7.>plugins=> Install plugin from disk...``8.定位到到刚才下载的jar,点击ok,完成后按提示重启即可.``9.插件安装的位置在C:\Users\xxxxxxxxx\.IntelliJIdea14\config\plugins\插件名下.``10.安装iBATIS/MyBatis min-plugin插件
23.调整idea启动时的内存配置参数
1.%IDEA_HOME%/bin/idea.exe.vmoptions
24.导入eclipse web项目发布到Tomcat如果找不到
1.导入eclipse web项目发布到Tomcat如果找不到,可以在环境配置的Facets增加web支持,在Artifacts中增加项目部署模块
25.每次打开一个新jsp或java文件时,cpu都占用很高,去掉检验即可
每次打开一个新jsp或java文件时,cpu都占用很高,去掉检验即可:``file->settings->editor->inspection
26.idea增加spring/struts关联文件支持
project Settings->Modules->选中项目右键可添加
27. IDEA开启类修改后自动编译
1.File->setting->Buil,Execution,Deployment->compiler=>Make project automatically``2.编译错误问题解决``3.Error:java: Compilation failed: internal java compiler error``4.set中Java complier 设置的问题 ,项目中有人用jdk1.6 有人用jdk1.7 版本不一样 会一起这个错
28.提示实现Serializable接口
1.使用 Eclipse 或 MyEclipse 的同学可能知道,如果 implements Serializable 接口时,会提示你生成 serialVersionUID。``2.但 Intellij IDEA 默认没启用这个功能。``3.Preferences->IEditor->nspections->Serialization issues->Serializable class without ’serialVersionUID’,``4.选中以上后,在你的class中:``光标定位在类名前,按 Alt+Enter 就会提示自动创建 serialVersionUID
29.演出模式
我们可以使用【Presentation Mode】,将IDEA弄到最大,可以让你只关注一个类里面的代码,进行毫无干扰的coding。``可以使用Alt+V快捷键,谈出View视图,然后选择Enter Presentation Mode。``效果如下
image
这个模式的好处就是,可以让你更加专注,因为你只能看到特定某个类的代码。``可能读者会问,进入这个模式后,我想看其他类的代码怎么办?``这个时候,就要考验你快捷键的熟练程度了。``你可以使用CTRL+E弹出最近使用的文件。``又或者使用CTRL+N和CTRL+SHIFT+N定位文件。``如何退出这个模式呢?``很简单,使用ALT+V弹出view视图,然后选择Exit Presentation Mode 即可。``但是我强烈建议你不要这么做,因为你是可以在Enter Presentation Mode模式下在IDEA里面做任何事情的。``当然前提是,你对IDEA足够熟练
30.神奇的Inject language
如果你使用IDEA在编写JSON字符串的时候,然后要一个一个\去转义双引号的话,就实在太不应该了,又烦又容易出错。``在IDEA可以使用Inject language帮我们自动转义双引号
先将焦点定位到双引号里面,使用alt+enter快捷键弹出inject language视图,并选中Inject language or reference。
image
选择后,切记,要直接按下enter回车键,才能弹出inject language列表。在列表中选择 json组件。
image
选择完后。鼠标焦点自动会定位在双引号里面,这个时候你再次使用alt+enter就可以看到
image
选中Edit JSON Fragment并回车,就可以看到编辑JSON文件的视图了。
image
可以看到IDEA确实帮我们自动转义双引号了。如果要退出编辑JSON信息的视图,只需要使用ctrl+F4快捷键即可。Inject language可以支持的语言和操作多到你难以想象,读者可以自行研究。
31.强大的symbol
如果你依稀记得某个方法名字几个字母,想在IDEA里面找出来,可以怎么做呢?``直接使用ctrl+shift+alt+n,使用symbol来查找即可。
**32.idea快捷键和Windows默认快捷键冲突解决(如:**Ctrl+Alt+↑或Ctrl+Alt+F12)
解决方式:``在桌面右键 - 图形选项 - 快捷键 - 禁止 就可以
33.格式化代码时,注释被格式化问题
解决方案
将enable javadoc formating取消掉
image
三、快捷键!
自动代码
常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码 。
例如要输入for(User user : users)只需输入user.for+Tab ;
再比如,要输入Date birthday = user.getBirthday()只需输入user.getBirthday().var+Tab即可。
代码标签输入完成后,按Tab,生成代码。
-
Ctrl+Alt+O 优化导入的类和包
-
Alt+Insert 生成代码(如get,set方法,构造函数等) 或者右键(Generate)
-
fori/sout/psvm + Tab
-
Ctrl+Alt+T 生成try catch 或者 Alt+enter
-
CTRL+ALT+T 把选中的代码放在 TRY{} IF{} ELSE{} 里
-
Ctrl + O 重写方法
-
Ctrl + I 实现方法
-
Ctr+shift+U 大小写转化
-
ALT+回车 导入包,自动修正
-
ALT+/ 代码提示
-
CTRL+J 自动代码
-
Ctrl+Shift+J,整合两行为一行
-
CTRL+空格 代码提示
-
CTRL+SHIFT+SPACE 自动补全代码
-
CTRL+ALT+L 格式化代码
-
CTRL+ALT+I 自动缩进
-
CTRL+ALT+O 优化导入的类和包
-
ALT+INSERT 生成代码(如GET,SET方法,构造函数等)
-
CTRL+E 最近更改的代码
-
CTRL+ALT+SPACE 类名或接口名提示
-
CTRL+P 方法参数提示
-
CTRL+Q,可以看到当前方法的声明
-
Shift+F6 重构-重命名 (包、类、方法、变量、甚至注释等)
-
Ctrl+Alt+V 提取变量
查询快捷键
-
Ctrl+Shift+Backspace可以跳转到上次编辑的地
-
CTRL+ALT+ left/right 前后导航编辑过的地方
-
ALT+7 靠左窗口显示当前文件的结构
-
Ctrl+F12 浮动显示当前文件的结构
-
ALT+F7 找到你的函数或者变量或者类的所有引用到的地方
-
CTRL+ALT+F7 找到你的函数或者变量或者类的所有引用到的地方
-
Ctrl+Shift+Alt+N 查找类中的方法或变量
-
双击SHIFT 在项目的所有目录查找文件
-
Ctrl+N 查找类
-
Ctrl+Shift+N 查找文件
-
CTRL+G 定位行
-
CTRL+F 在当前窗口查找文本
-
CTRL+SHIFT+F 在指定窗口查找文本
-
CTRL+R 在 当前窗口替换文本
-
CTRL+SHIFT+R 在指定窗口替换文本
-
ALT+SHIFT+C 查找修改的文件
-
CTRL+E 最近打开的文件
-
F3 向下查找关键字出现位置
-
SHIFT+F3 向上一个关键字出现位置
-
选中文本,按Alt+F3 ,高亮相同文本,F3逐个往下查找相同文本
-
F4 查找变量来源
-
CTRL+SHIFT+O 弹出显示查找内容
-
Ctrl+W 选中代码,连续按会有其他效果
-
F2 或Shift+F2 高亮错误或警告快速定位
-
Ctrl+Up/Down 光标跳转到第一行或最后一行下
-
Ctrl+B 快速打开光标处的类或方法
-
CTRL+ALT+B 找所有的子类
-
CTRL+SHIFT+B 找变量的类
-
Ctrl+Shift+上下键 上下移动代码
-
Ctrl+Alt+ left/right 返回至上次浏览的位置
-
Ctrl+X 删除行
-
Ctrl+D 复制行
-
Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/
…
/ )
34. Ctrl+H 显示类结构图
-
Ctrl+Q 显示注释文档
-
Alt+F1 查找代码所在位置
-
Alt+1 快速打开或隐藏工程面板
-
Alt+ left/right 切换代码视图
-
ALT+ ↑/↓ 在方法间快速移动定位
-
CTRL+ALT+ left/right 前后导航编辑过的地方
-
Ctrl+Shift+Backspace可以跳转到上次编辑的地
-
Alt+6 查找TODO
其他快捷键
-
SHIFT+ENTER 另起一行
-
CTRL+Z 倒退(撤销)
-
CTRL+SHIFT+Z 向前(取消撤销)
-
CTRL+ALT+F12 资源管理器打开文件夹
-
ALT+F1 查找文件所在目录位置
-
SHIFT+ALT+INSERT 竖编辑模式
-
CTRL+F4 关闭当前窗口
-
Ctrl+Alt+V,可以引入变量。例如:new String(); 自动导入变量定义
-
Ctrl+~,快速切换方案(界面外观、代码风格、快捷键映射等菜单)
svn快捷键
-
ctrl+k 提交代码到SVN
-
ctrl+t 更新代码
调试快捷键
其实常用的 就是F8 F7 F9 最值得一提的就是Drop Frame 可以让运行过的代码从头再来。
-
alt+F8 debug时选中查看值
-
Alt+Shift+F9,选择 Debug
-
Alt+Shift+F10,选择 Run
-
Ctrl+Shift+F9,编译
-
Ctrl+Shift+F8,查看断点
-
F7,步入
-
Shift+F7,智能步入
-
Alt+Shift+F7,强制步入
-
F8,步过
-
Shift+F8,步出
-
Alt+Shift+F8,强制步过
-
Alt+F9,运行至光标处
-
Ctrl+Alt+F9,强制运行至光标处
-
F9,恢复程序
-
Alt+F10,定位到断点
重构
-
Ctrl+Alt+Shift+T,弹出重构菜单
-
Shift+F6,重命名
-
F6,移动
-
F5,复制
-
Alt+Delete,安全删除
-
Ctrl+Alt+N,内联
四、快捷键!
1 智能提示:
Intellij首当其冲的当然就是Intelligence智能!基本的代码提示用Ctrl+Space,还有更智能地按类型信息提示Ctrl+Shift+Space,但因为Intellij总是随着我们敲击而自动提示,所以很多时候都不会手动敲这两个快捷键(除非提示框消失了)。
用F2/ Shift+F2移动到有错误的代码,Alt+Enter快速修复(即Eclipse中的Quick Fix功能)。当智能提示为我们自动补全方法名时,我们通常要自己补上行尾的反括号和分号,当括号嵌套很多层时会很麻烦,这时我们只需敲Ctrl+Shift+Enter就能自动补全末尾的字符。而且不只是括号,例如敲完if/for时也可以自动补上{}花括号。
最后要说一点,Intellij能够智能感知Spring、Hibernate等主流框架的配置文件和类,以静制动,在看似“静态”的外表下,智能地扫描理解你的项目是如何构造和配置的。
2 重构:
Intellij重构是另一完爆Eclipse的功能,其智能程度令人瞠目结舌,比如提取变量时自动检查到所有匹配同时提取成一个变量等。尤其看过《重构-改善既有代码设计》之后,有了Intellij的配合简直是令人大呼过瘾!也正是强大的智能和重构功能,使Intellij下的TDD开发非常顺畅。
切入正题,先说一个无敌的重构功能大汇总快捷键Ctrl+Shift+Alt+T,叫做Refactor This。按法有点复杂,但也符合Intellij的风格,很多快捷键都要双手完成,而不像Eclipse不少最有用的快捷键可以潇洒地单手完成(不知道算不算Eclipse的一大优点),但各位用过Emacs的话就会觉得也没什么了(非Emacs黑)。
此外,还有些最常用的重构技巧,因为太常用了,若每次都在Refactor This菜单里选的话效率有些低。比如Shift+F6直接就是改名,Ctrl+Alt+V则是提取变量。
3 代码生成:
这一点类似Eclipse,虽不是独到之处,但因为日常使用频率极高,所以还是罗列在榜单前面。常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码,用Ctrl+J可以查看所有模板。
后面“辅助”一节中将会讲到Alt+Insert,在编辑窗口中点击可以生成构造函数、toString、getter/setter、重写父类方法等。这两个技巧实在太常用了,几乎每天都要生成一堆main、System.out和getter/setter。
另外,Intellij IDEA 13中加入了后缀自动补全功能(Postfix Completion),比模板生成更加灵活和强大。例如要输入for(User user : users)只需输入user.for+Tab。再比如,要输入Date birthday = user.getBirthday();只需输入user.getBirthday().var+Tab即可。
4 编辑:
编辑中不得不说的一大神键就是能够自动按语法选中代码的Ctrl+W以及反向的Ctrl+Shift+W了。此外,Ctrl+Left/Right移动光标到前/后单词,Ctrl+[/]移动到前/后代码块,这些类Vim风格的光标移动也是一大亮点。以上Ctrl+Left/Right/[]加上Shift的话就能选中跳跃范围内的代码。Alt+Forward/Backward移动到前/后方法。还有些非常普通的像Ctrl+Y删除行、Ctrl+D复制行、Ctrl+折叠代码就不多说了。
关于光标移动再多扩展一点,除了Intellij本身已提供的功能外,我们还可以安装ideaVim或者emacsIDEAs享受到Vim的快速移动和Emacs的AceJump功能(超爽!)。
另外,Intellij的书签功能也是不错的,用Ctrl+Shift+Num定义1-10书签(再次按这组快捷键则是删除书签),然后通过Ctrl+Num跳转。这避免了多次使用前/下一编辑位置Ctrl+Left/Right来回跳转的麻烦,而且此快捷键默认与Windows热键冲突(默认多了Alt,与Windows改变显示器显示方向冲突,一不小心显示器就变成倒着显式的了,冏啊)。
5 查找打开:
类似Eclipse,Intellij的Ctrl+N/Ctrl+Shift+N可以打开类或资源,但Intellij更加智能一些,我们输入的任何字符都将看作模糊匹配,省却了Eclipse中还有输入*的麻烦。最新版本的IDEA还加入了Search Everywhere功能,只需按Shift+Shift即可在一个弹出框中搜索任何东西,包括类、资源、配置项、方法等等。
类的继承关系则可用Ctrl+H打开类层次窗口,在继承层次上跳转则用Ctrl+B/Ctrl+Alt+B分别对应父类或父方法定义和子类或子方法实现,查看当前类的所有方法用Ctrl+F12。
要找类或方法的使用也很简单,Alt+F7。要查找文本的出现位置就用Ctrl+F/Ctrl+Shift+F在当前窗口或全工程中查找,再配合F3/Shift+F3前后移动到下一匹配处。
Intellij更加智能的又一佐证是在任意菜单或显示窗口,都可以直接输入你要找的单词,Intellij就会自动为你过滤。
6 其他辅助:
以上这些神键配上一些辅助快捷键,即可让你的双手90%以上的时间摆脱鼠标,专注于键盘仿佛在进行钢琴表演。这些不起眼却是至关重要的最后一块拼图有:
Ø 命令:Ctrl+Shift+A可以查找所有Intellij的命令,并且每个命令后面还有其快捷键。所以它不仅是一大神键,也是查找学习快捷键的工具。
Ø 新建:Alt+Insert可以新建类、方法等任何东西。
Ø 格式化代码:格式化import列表Ctrl+Alt+O,格式化代码Ctrl+Alt+L。
Ø 切换窗口:Alt+Num,常用的有1-项目结构,3-搜索结果,4/5-运行调试。Ctrl+Tab切换标签页,Ctrl+E/Ctrl+Shift+E打开最近打开过的或编辑过的文件。
Ø 单元测试:Ctrl+Alt+T创建单元测试用例。
Ø 运行:Alt+Shift+F10运行程序,Shift+F9启动调试,Ctrl+F2停止。
Ø 调试:F7/F8/F9分别对应Step into,Step over,Continue。
此外还有些我自定义的,例如水平分屏Ctrl+|等,和一些神奇的小功能Ctrl+Shift+V粘贴很早以前拷贝过的,Alt+Shift+Insert进入到列模式进行按列选中。
Ø Top #10切来切去:Ctrl+Tab
Ø Top #9选你所想:Ctrl+W
Ø Top #8代码生成:Template/Postfix +Tab
Ø Top #7发号施令:Ctrl+Shift+A
Ø Top #6无处藏身:Shift+Shift
Ø Top #5自动完成:Ctrl+Shift+Enter
Ø Top #4创造万物:Alt+Insert
太难割舍,前三名并列吧!
Ø Top #1智能补全:Ctrl+Shift+Space
Ø Top #1自我修复:Alt+Enter
Ø Top #1重构一切:Ctrl+Shift+Alt+T
*CTRL+ALT+ left/right 前后导航编辑过的地方 *
Ctrl+Shift+Backspace可以跳转到上次编辑的地方