Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发时的使用频率,简单分类列一下我最喜欢的十大快捷-神-键吧。
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进入到列模式进行按列选中。
7 最终榜单
这榜单阵容太豪华了,后几名都是如此有用,毫不示弱。
Ø 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+/ 或 Ctrl+Shift+/ 注释(// 或者/*...*/ )
Ctrl+D 复制行
Ctrl+X 删除行
快速修复 alt+enter (modify/cast)
代码提示 alt+/
ctr+G 定位某一行
Shift+F6 重构-重命名
Ctrl+R 替换文本
Ctrl+F 查找文本
Ctrl+E 最近打开的文件
Ctrl+J 自动代码
组织导入 ctr+alt+O
格式化代码 ctr+alt+L
大小写转化 ctr+shift+U
--------------------------
Ctrl+N 查找类
Ctrl+Shift+N 查找文件
Ctrl+Alt+L 格式化代码
Alt+Insert 生成代码(如get,set方法,构造函数等)
Ctrl+E或者Alt+Shift+C 最近更改的代码
Ctrl+R 替换文本
Ctrl+Shift+Space 自动补全代码
Ctrl+空格 代码提示
Ctrl+Shift+先上键
Ctrl+X 删除行
Ctrl+D 复制行
Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/*...*/ )
Ctrl+J 自动代码
Ctrl+E 最近打开的文件
Alt+F1 查找代码所在位置
Alt+1 快速打开或隐藏工程面板
Alt+ left/right 切换代码视图
Ctrl+Shift+Up/Down 代码向上/下移动。
1. IDEA内存优化
因机器本身的配置而配置:
\IntelliJ IDEA 8\bin\idea.exe.vmoptions
-----------------------------------------
-Xms64m
-Xmx256m
-XX:MaxPermSize=92m
-ea
-server
-Dsun.awt.keepWorkingSetOnMinimize=true
2. 查询快捷键
CTRL+N 查找类
CTRL+SHIFT+N 查找文件
CTRL+SHIFT+ALT+N 查找类中的方法或变量
CIRL+B 找变量的来源
CTRL+ALT+B 找所有的子类
CTRL+SHIFT+B 找变量的类
CTRL+G 定位行
CTRL+F 在当前窗口查找文本
CTRL+SHIFT+F 在指定窗口查找文本
CTRL+R 在 当前窗口替换文本
CTRL+SHIFT+R 在指定窗口替换文本
ALT+SHIFT+C 查找修改的文件
CTRL+E 最近打开的文件
F3 向下查找关键字出现位置
SHIFT+F3 向上一个关键字出现位置
F4 查找变量来源
CTRL+ALT+F7 选中的字符查找工程出现的地方
CTRL+SHIFT+O 弹出显示查找内容
3. 自动代码
ALT+回车 导入包,自动修正
CTRL+ALT+L 格式化代码
CTRL+ALT+I 自动缩进
CTRL+ALT+O 优化导入的类和包
ALT+INSERT 生成代码(如GET,SET方法,构造函数等)
CTRL+E 最近更改的代码
CTRL+SHIFT+SPACE 自动补全代码
CTRL+空格 代码提示
CTRL+ALT+SPACE 类名或接口名提示
CTRL+P 方法参数提示
CTRL+J 自动代码
CTRL+ALT+T 把选中的代码放在 TRY{} IF{} ELSE{} 里
4. 复制快捷方式
CTRL+D 复制行
CTRL+X 剪切,删除行
5. 其他快捷方式
CIRL+U 大小写切换
CTRL+Z 倒退
CTRL+SHIFT+Z 向前
CTRL+ALT+F12 资源管理器打开文件夹
ALT+F1 查找文件所在目录位置
SHIFT+ALT+INSERT 竖编辑模式
CTRL+/ 注释//
CTRL+SHIFT+/ 注释/*...*/
CTRL+W 选中代码,连续按会有其他效果
CTRL+B 快速打开光标处的类或方法
ALT+ ←/→ 切换代码视图
CTRL+ALT ←/→ 返回上次编辑的位置
ALT+ ↑/↓ 在方法间快速移动定位
SHIFT+F6 重构-重命名
CTRL+H 显示类结构图
CTRL+Q 显示注释文档
ALT+1 快速打开或隐藏工程面板
CTRL+SHIFT+UP/DOWN 代码向上/下移动。
CTRL+UP/DOWN 光标跳转到第一行或最后一行下
ESC 光标返回编辑框
SHIFT+ESC 光标返回编辑框,关闭无用的窗口
F1 帮助千万别按,很卡!
CTRL+F4 非常重要下班都用
Intellij IDEA 13快捷键
以下快捷键对应Intellij IDEA mac版keymap设为Eclipse(mac)时。大部分跟eclipse一样,但有一些不同。部分快捷键做了自定义,会附上配置文件。
复制/剪切/粘贴 command+c/command+x/command+v
指定位置查找: ctrl+h
打开的文件内查找:默认没有,我改成了command+f 因为ctrl+f冲突,移动到下一个关键字:enter
移动光标到括号结尾:ctrl+],与下面的对应,我加了alt+command+]同时选中alt+command+shift+]
移动光标到括号开始:alt+command+[ 与上面的对应,我加了ctrl+],同时选中alt+command+shift+[
打开源码相关菜单:ctrl+enter,可以生成构造方法,setter,getter,覆盖,委托,equals,hashCode,toString等方法。
代码完成,默认是ctrl+空格,与Spotlight冲突,我改成了ctrl+/
代码对齐:command+shift+f
优化导入:command+shift+o 貌似只会删除无用的导入,不会添加需要导入的类
导入缺少的类:光标移到报错的代码上,按command+1,选择import class(第一项,可以直接回车),暂时没找到批量导入方法
复制光标所在行到下一行:command+alt+down
删除光标所在行:command+d
查看类层次结构:F4
查找所有调用:command+ctrl+g
展开/收缩方法:command++/-
展开所有:command+shift+=
收缩所有:command+shift+_
显示当前类的所有方法和变量(类似eclipse里的大纲):command+o
运行:ctrl+alt+r,shift+command+F11
跳到源代码:F3
显示所有实现:command+t
跳到父类的实现(在子类的覆盖方法上):alt+shift+s
查找类:command+shift+t
生成if/if esle/try catch/synchronized等surround代码段:选中代码段,按alt+command+z
智能类型代码完成(在new后面自动加上类型):alt+shift+空格
注释:选中后 command+/ 每行双斜杠,ctrl+shift+/ /**注释*/
在错误处跳转:command+. command+shift+. 可以快速跳转到当前打开文件错误的地方
在方法间跳转:ctrl+alt+up/ctrl+alt+down
配置文件,保存到~/Library/Preferences/IdeaIC13/keymaps/Eclipse _Mac OS X_ copy.xml
Eclipse _Mac OS X_ copy.xml:
- <?xml version="1.0" encoding="UTF-8"?>
- <keymap version="1" name="Eclipse (Mac OS X) copy" parent="Eclipse (Mac OS X)">
- <action id="CodeCompletion">
- <keyboard-shortcut first-keystroke="control SLASH" />
- </action>
- <action id="CollapseAllRegions">
- <keyboard-shortcut first-keystroke="shift meta DIVIDE" />
- <keyboard-shortcut first-keystroke="shift meta MINUS" />
- </action>
- <action id="CollapseRegion">
- <keyboard-shortcut first-keystroke="meta MINUS" />
- </action>
- <action id="EditorCloneCaretAbove">
- <keyboard-shortcut first-keystroke="control meta DOWN" />
- </action>
- <action id="EditorCodeBlockEnd">
- <keyboard-shortcut first-keystroke="control CLOSE_BRACKET" />
- <keyboard-shortcut first-keystroke="shift control P" />
- <keyboard-shortcut first-keystroke="meta alt CLOSE_BRACKET" />
- </action>
- <action id="ExpandAllRegions">
- <keyboard-shortcut first-keystroke="meta MULTIPLY" />
- <keyboard-shortcut first-keystroke="shift meta EQUALS" />
- </action>
- <action id="ExpandRegion">
- <keyboard-shortcut first-keystroke="meta ADD" />
- </action>
- <action id="Find">
- <keyboard-shortcut first-keystroke="meta F" />
- </action>
- <action id="GotoImplementation">
- <keyboard-shortcut first-keystroke="meta T" />
- </action>
- <action id="GotoSuperMethod">
- <keyboard-shortcut first-keystroke="shift alt S" />
- </action>
- <action id="MethodHierarchy.ImplementMethodAction" />
- <action id="SwitchApply">
- <keyboard-shortcut first-keystroke="control alt ENTER" />
- </action>
- <action id="SwitchDown">
- <keyboard-shortcut first-keystroke="control alt DOWN" />
- </action>
- <action id="SwitchLeft">
- <keyboard-shortcut first-keystroke="control alt LEFT" />
- </action>
- <action id="SwitchRight">
- <keyboard-shortcut first-keystroke="control alt RIGHT" />
- </action>
- <action id="SwitchUp">
- <keyboard-shortcut first-keystroke="control alt UP" />
- </action>
- </keymap>
Jimi是谁? 就是洒家啊!
刚开始学习写Java的时候,用的eclipse,正式工作后,主要用的myeclipse,去年初在前辈的推荐下,在2折的时候买了正版的 IntelliJ IDEA 和 Pycharm,12.0版终生使用,一年更新。
使用前早就久闻其名,据说是最好的Java开发工具。
起先用的非常不习惯,但是花了钱的,硬着头皮用了下去。
短短一个礼拜,彻底爱上了它!就是辣么酸爽!--------------------------------------------------------------谨以此文献给对于拥抱IDEA还存在疑虑的筒子们
JetBrains(这个公司的名称翻译过来就是“大脑喷射?”) 公司的宣传语是这么说的:Develop with pleasure!(带着快乐开发!)
Why?
他们咋这么有信心呢?
这到底是怎样的一个工具?
跟我一起来数数IDEA特别长的地方:
一.黑色主题 Darcula
眼睛舒服,最重要的是酷!
设置方式:FILE--Settings--Edit--Colors&Fonts--Scheme name
二.智能提示
创建或引入项目的时候,会自动引入缺少的包,真找不着的还可以search in the net
键入代码的时候,区分大小写的智能提示,自动引入包,如果有重名的会列出所有选择,但是比 myeclipse 的更聪明,至于怎么个聪明法,你自个儿试试就知道了
三.工具集成
基本上正式开发的常用工具基本都集成了,而且基本都在你非常容易触到的位置。
说说我比较常用的:
1.ant
你懂的
2.maven
你也懂的
3.SVN
相比之下,IDEA的SVN的提交提供了更多的选项和功能
提交的界面两侧会显示当前文件和修改的部分对比,可以非常方便地检查和修改文件。
提交前:
(1).可选择自动格式化
(2).可选择自动忽略没有使用的imports
(3).可选择分析代码
(4).检查是否有TODO
提交后甚至可以选择将改变上传到特定的目录
4.系统终端
有了这个东西,你就不必频繁地切换窗口了
打开方式:Tools--Open Terminal
5.SSH工具
打开方式:Tools--Start SSH session
6.数据库连接工具
打开方式:View--Tool Windows--Database
7.IDEA talk
神奇的东西,你可以联系局域网内其它的IDEA使用者,可以方便地把你的代码show给你的同事
打开方式:View--Tool Windows--IDEA talk
8.Changes
非常方便的changes视图,它会变色显示你所有改动过的文件,而且可以方便的与 本地历史 或 线上历史 做对比
打开方式:View--Tool Windows--Changes
还有git、github、cvs、groovy consle以及等等,真没有的你还可以:
FILE--Settings--Plugins
四.强大的绘图工具
读源码看不懂项目结构?写文章画类图好麻烦?
右键diagram帮助你
上个例图:
右键选择 Show Categories 有惊喜,什么值域、方法、构造器、内部类统统有
五.无缝接入eclipse和myeclipse
IDEA可以直接打开有.project文件的项目,也可以将自身项目导出成eclipse的项目。
而且因为IDEA的项目配置文件为1个.iml文件加一个独立文件夹.idea,
所以只要你将两者放入ignore目录,即使在你个人使用IDEA而团队使用其他IDE的情况下,也并不会对其他人造成麻烦。
导出方法:FILE--Export to eclipse
六.更小的体积,更快的速度
用过myeclipse的你明白的
综上,我想你应该能够明白,为啥用IDEA写代码,就是那么愉快,就是那么酸爽,就是那么令人停不下来!
接着分享开发中我比较常用的一些快捷键:
一.找文件找代码找引用相关
1.双击shift
在项目的所有目录查找,就是你想看到你不想看到的和你没想过你能看到的都给你找出来
2.ctrl+f
当前文件查找特定内容
3.ctrl+shift+f
当前项目查找包含特定内容的文件
4.ctrl+n
查找类
5.ctrl+shift+n
查找文件
6.ctrl+e
最近的文件
7.alt+F7
非常非常频繁使用的一个快捷键,可以帮你找到你的函数或者变量或者类的所有引用到的地方
二.编辑相关
1.shift+enter
另起一行
2.ctrl+r
当前文件替换特定内容
3.ctrl+shift+r
当前项目替换特定内容
4.shift+F6
非常非常省心省力的一个快捷键,可以重命名你的类、方法、变量等等,而且这个重命名甚至可以选择替换掉注释中的内容
5.ctrl+d
复制当前行到下一行
6.ctrl+x
剪切当前行
7.ctrl+c \ ctrl+v
大家都懂的
8.ctrl+z
撤销
9.ctrl+shift+z
取消撤销
10.ctrl+k
提交代码到SVN
11.ctrl+t
更新代码
12.alt+insert
非常非常以及相当方便的一个组合键,不信您往下看
在类中使用:
可以自动生成构造器、getter/setter等等常用方法
在项目目录上使用:
可用于新建各种文件。
13.alt+enter
又是一个大杀器,有多杀?
例1:
发现代码很“黄”怎么办?
鼠标移上去喵一下:
试试alt+enter:
选择simplify看看
我勒个去,代码简洁了有木有啊!
PS:黄色警告编译可以通过,不影响程序的正常运行,一般都是一些对于代码优化的建议,我遇到过的有:
(1).can be simplify
代码可以简化
(2).Variable is never use
声明的变量从未被使用
(3)unnecessary boxing
不必要的声明包装
以及等等等,多留意下,对于编码的某些细节能够更了解。
例2:
写个类实现某个接口,加上 implements Runnable 后你就会发现这条红色的波浪线:
咱试试在这行上来个 alt+enter:
感动地哭了有木有?你想到的没想到的IDEA都帮你想到了。
看到代码里提示的各种红XX,就试试alt+enter吧!什么未抛异常啊没有try catch啊都能搞得定。
14.ctrl+alt+L
自动格式化代码,我已经养成了写完代码就来一发的习惯。
你可以个性化设置你自己的代码风格:File--Settings--CodeStyle
——————————切——————————切——————————切——————————切——————————切——————————
凡事有利有弊,IDEA同样是把双刃剑,最后说说它不好的地方
1.最重要的就是“贵”!
专业版个人许可2折可以接受,5折小贵,不打折桑不起!!!囧RZ~
美刀的消费水准令国内大多在屌丝线上挣扎的猿类们望而却步。
好在JetBrains是有社区版的,最近对于学生也有免费的Key。
对于使用破解版的小伙伴,建议自己用用就好了,不必太声张。
用户养成良好的软件付费习惯,才能让我们的工作变得越来越有价值。
2.集成太完善了
集成的工具完全能够应付大多数的工作需求,对于不求甚解又偷懒的筒子们,直接使用,可能很多工具的细节,你都不会了解,也不会再去了解了。
比如:maven,ant
3.不自带JDK
不是缺点的缺点,myeclipse是集成的
差不多了,该撸代码了。
以上这些,就是我使用IDEA一年半来几乎所有的心得了。
能力有限,砖头轻拍。
如果你有杀伤力更强大的手段,欢迎交流。