本系列教程从 IntelliJ IDEA 的安装、卸载、软件设置、项目配置等各个方面进行讲解。通过本系列教程的学习,也希望你能爱上 IntelliJ IDEA,爱上它的体贴。同时学完本系列教程对于你学习 JetBrains 公司下的其他产品也有好处,其他产品包括:
IntelliJ IDEA 在 2015 年 06 月官网主页是这样介绍自己的:
Excel at enterprise, mobile and web development with Java, Scala and Groovy, with all the latest modern technologies and frameworks available out of the box.
简明翻译:IntelliJ IDEA 主要用于支持 Java、Scala、Groovy 等语言的开发工具,同时具备支持目前主流的技术和框架,擅长于企业应用、移动应用和 Web 应用的开发。
IntelliJ IDEA 对自己的定义是很清晰的,对于新人来讲可能还不太理解,可能还会有误会,认为它博而不精,但是对于老用户来讲应该是非常认可上面这句话的。通过下面功能表格,新人对于 IntelliJ IDEA 所具备的功能会有一个新的认识。
如果用一句话来形容 IntelliJ IDEA,我会说:IntelliJ IDEA 是目前所有 IDE 中最具备沉浸式的 JVM IDE,没有之一。
安装插件后支持 | SQL类 | 基本JVM |
---|---|---|
PHP | PostgreSQL | Java |
Python | MySQL | Groovy |
Ruby | Oracle | |
Scala | SQL Server | |
Kotlin | ||
Clojure |
支持的框架 | 额外支持的语言代码提示 | 支持的容器 |
---|---|---|
Spring MVC | HTML5 | Tomcat |
GWT | CSS3 | TomEE |
Vaadin | SASS | WebLogic |
Play | LESS | JBoss |
Grails | JavaScript | Jetty |
Web Services | CoffeeScript | WebSphere |
JSF | Node.js | |
Struts | ActionScript | |
Hibernate | ||
Flex |
上面特性只是 IntelliJ IDEA 的冰山一角,而且这个还不是 IntelliJ IDEA 最重要的地方,IntelliJ IDEA 最重要的特性就是人性化、智能,后面学习你会慢慢接触到。
更多官方学习信息
更多官方资讯跟踪途径
- 官方博客:http://blog.jetbrains.com/idea/
- IntelliJ IDEA 官方 community:https://intellij-support.jetbrains.com/hc/en-us/community/topics
- IntelliJ IDEA 官方 issue:https://youtrack.jetbrains.com/issues/IDEA
- YouTube:https://www.youtube.com/user/intellijideavideo
- Twitter:https://twitter.com/IntelliJIDEA
- Facebook:https://www.facebook.com/IntelliJIDEA
- JetBrains 新浪微博:http://www.weibo.com/u/3220313942
- JetBrains Google+:https://plus.google.com/+jetbrains
- IntelliJ IDEA Google+:https://plus.google.com/+intellijidea
学习前提
由于 IntelliJ IDEA 官网在亚洲没有设服务器,且官网用到一些类似 Twitter、Facebook 等站的脚本会使得你在国内出现访问巨慢或是不允许访问的特殊情况,所以建议你在访问官网、访问插件库、小版本本地迭代更新等操作的时候出现奇怪问题的时候,请自备VPN等网络加速工具。
很多用户都是先学习了 Eclipse、MyEclipse 再转到 IntelliJ IDEA 的,这里需要先说明的是,在学习 IntelliJ IDEA 过程中,你暂且要放下 Eclipse 下的开发思维方式,不能按 Eclipse 的软件思想或是结构去要求 IntelliJ IDEA,这样对你学习 IntelliJ IDEA 非常不利。
适用人群
用 IntelliJ IDEA 进行开发语言的学习者。
用 IntelliJ IDEA 进行开发语言的开发工作者。
其中对于语言开发学习者我是非常建议你使用 IntelliJ IDEA,因为一些代码格式、命名规范在 IntelliJ IDEA 下都是有良好的提示,对于我们所处的输入法下的中文全角符号也可以得到快速发现。特别是学习 Python 的学习者,当你在用 Pycharm 进行学习的时候,Pycharm 会时刻告诉你什么时候要注意空格、换行,提醒你有 PEP8 编码规范,你也可以通过快捷键快速格式化出适合 Python 要求的代码,这对于学习者来讲,真的很重要,它可以让你更专注于自己的代码。
教程演示的 IntelliJ IDEA 版本
IntelliJ IDEA 13 版本和 14 版本,在设置上差异很大,14 版本 IntelliJ IDEA 对整个 IDE 的设置进行了重新编排、归类,但是细节设置上所沿用的介绍是没有多大改变的。
目前(2015 年 06 月)IntelliJ IDEA 官网最新版本信息为:Version:14.1.4 Build:141.1532.4 Released:June 19th, 2015。
IntelliJ IDEA 有旗舰版和社区版本之分,本系列教程将以 14.1.4
的旗舰版进行演示和讲解。
其中旗舰版(Ultimate Edition)为收费版本,有 30 天试用期。如果你是学生、老师、开源项目参与者都可以向官网免费试用旗舰版,具体你可以查看下面链接。社区版(Community Edition)为免费版本,功能较旗舰版少了很多。
本教程使用的 IntelliJ IDEA 主题为较受欢迎的黑色:Darcula。
教程演示的系统环境
- 系统:Windows 8.1 64 位 简体中文版
- JDK 版本:1.8.0_05 64 位
- 建议使用 JDK 版本为:1.6 及 1.6 以上,更加详细的系统要求会在安装教程篇中进行讲解。
2015 年 IntelliJ IDEA 主版本是 14,目前(2015 年 06 月)最新版本是 14.1.4。与此同时,2015 年 06 月 17 日,官网开始提供 15 EAP 版本(Early Access Program 早期预览版)。如果你对 IntelliJ IDEA 下个大版本的新特性很感兴趣,你可以随时关注官网博客最新动态。
按正常情况来讲,IntelliJ IDEA 大版本是一年迭代一次。大版本下的小版本迭代时间没有固定,快的是一个月不到就迭代一次,慢的话基本在两到三个月迭代一次。相对其他 IDE 来讲迭代周期还是比较紧凑,但是作为用户你不用担心因为频繁迭代更新而引起的项目配置问题或是软件配置问题,后面有课程会专门对此进行说明。
- IntelliJ IDEA 官网博客:http://eap.jetbrains.com/idea
系统要求
- 系统支持:Mac OS X 10.5 + / Windows XP + / Linux 需要支持GNOME 或 KDE 桌面系统
- JDK 版本:Apple Java 6 或 Oracle Java 7 以上
- 内存:最低要求 1 G,推荐 2 G 以上
- 硬盘:最低要求 2 G
- 显示器:最低要求 1024 X 768 分辨率
- 更多信息可以阅读:https://www.jetbrains.com/help/idea/install-and-set-up-intellij-idea.html
主题修改
- 上图标注 1 所示为 IntelliJ IDEA 修改主题的地方,可以通过打开左上角的File -> Setting。在 Windows 系统上 IntelliJ IDEA 默认提供的主题有四套:
Darcula
、IntelliJ
、Windows
、Alloy. IDEA Theme
。除了Darcula
是黑色主题,其他三套都是以白色为背景的。- 其他操作系统上不一定会也有四套主题的,主题的选择上大家根据自己喜好即可。改变主题需要重启 IntelliJ IDEA 方可看到效果。
字体修改
主题字体修改
- 如上图标注 1 所示,IntelliJ IDEA 主题字体的修改要先勾选
Override default fonts by
。默认 IntelliJ IDEA 是不推荐修改的,但是由于字体是有分包含中文和不包含中文之分的,一般使用英文的国家是不需要额外担心乱码问题的,而我们需要。- 字体的审美上每个人不一样,但是如上一段说的,这里的字体修改是需要知道一个前提的,那就是你选择的那个字体必须含有中文,比如微软雅黑和宋体这类是包含中文的,而
Courier New
和Monaco
这类只是单纯的英文字体。- 如果你选择的字体不包含中文,那可能会在很多位置上出现类似
口口口口口
这样的乱码问题,比如文件名含有中文、字体是中文名字的都会变成口口口口口
。- 在修改 IntelliJ IDEA 的主题字体的时候,不建议把字体调成很大,因为很多人遇到这样一种情况:显示器分辨率低,主题字体又大,在 IntelliJ IDEA 的某些操作的工具菜单、右键菜单选项中部分选项超出了分辨率显示范围,没办法被选中。当然了,如果你一定要把字体改大,又不用大分辨率显示器,那可以通过 IntelliJ IDEA 的
Menus and Toolbars
删除部分你认为用不到的菜单,但是一般不建议这样做。- 还需要特别注意的时候,如果你是开着 IntelliJ IDEA 的时候,新装了一个字体的话,那必须重启IntelliJ IDEA 之后才能在下拉列表找到新装的字体。
代码编辑字体修改
- 如上图标注 1 所示,默认 IntelliJ IDEA 是不能直接在默认的代码模板上修改字体的,需要先
Save As
一份出来,然后才可以修改。这种设计在 IntelliJ IDEA 其他很多设置也是如此的,所以如果你还看到类似有Copy
、Save As
这类选项的按钮就要想到是此设计思想。- 如上图标注 2 所示,勾选的
Show only monospaced fonts
表示筛选显示系统上的等宽字体。由于 Windows 系统上等宽字体并不多,勾选此选项出现的下拉字体可选择就很少。取消勾选之后,就可以显示系统上所有已安装的字体。- 如上图标注 3 所示,其中编码字体有第一字体(
Primary font
) 和 第二字体(Secondary font
)之分。当有些字符在第一字体支持不了的时候,会去使用第二字体进行支持。- 我个人习惯上:英文字体使用
Monaco
,由于此字体不支持中文,所以我把这个设置为第一字体,第二字体使用Yahei Consolas Hybrid
进行支持,该字体含有中文。这两个字体都不是系统自带的,需要自行下载安装。- 如果你的第一字体不包含中文的话,第二字体包含中文,那在有些地方也还是会出现
口口口口口
这类问题,比如Ctrl + Shift + N
进行查找文件的时候,如果你输入中文也会变成口口口口口
,我个人文件名为中文的不多,所以就容忍了这种情况。如果你不愿意容忍这种情况,那还是回到最开始的要求:第一字体包含中文。
控制台输出字体修改
- 如上图为控制台输出内容字体修改,有很多 IntelliJ IDEA 新人在做输出的时候出现乱码原因就是因为没有在这里进行设置。
- 控制台输出字体 修改的原理跟 代码编辑字体修改 是一样的,所以这里不进行讲解。
编辑区主题介绍
- 编辑区主题,也就是代码书写区的主题修改。基本上大家在
General
上都有对此进行小修小改,我下面也主要介绍下我个人在General
上常修改的一些地方,其他特性的颜色修改我一般默认,但是修改方法原理一样。- 如上图红圈下拉所示,展示的是我当前电脑可以选择的编辑区主题。
- 对于编辑区的主题,也有人制作成模板在网络上提供下载。这里主要介绍两个站点:
- http://color-themes.com/?view=index,主要提供 jar 文件下载。
- http://www.phpstorm-themes.com/,主要提供 xml 和 icl 文件下载。
- 对应文件如何安装请查看网站对应的
Help
页面,都有详细说明的。
编辑区主题细节修改
- 上图标注 1 为可修改的通用细节内容
- 上图标注 2 为可修改属性,其中并不是每个细节都可以修改所有属性的。比如细节:
Default text
是可以勾选Bold
,而Caret row
则是无法勾选Bold
,因为只有文本才有加粗的属性需求。- 上图标注 3 为修改后的预览区,预览区是实时动态展示的。
- 在
General
区,我常修改的有:
Default text
,指的是默认代码文本,我一般会修改其Background
属性。Caret row
,指的是光标所在行,我一般会修改其Background
属性。Vertical indent guide
,指的是垂直缩进线,我一般会修改其Foreground
属性。Identifier under caret
,指的是光标所在位置的相同标识符呈现什么效果,我一般会修改其Background
属性。Text search result
,指的是在查找模式下,匹配字符的样式,我一般会修改其Background
属性。
文件编码修改
- 上图标注 1 所示,IDE 的编码默认是
UTF-8
,Project Encoding
虽然默认是GBK
,但是一般我都建议修改为UTF-8
。- 上图标注 2 所示,IntelliJ IDEA 可以对
Properties
文件进行专门的编码设置,一般也建议改为UTF-8
,其中有一个重点就是属性Transparent native-to-ascii conversion
,- 上图标注 3 所示,对于
Properties
文件,重要属性Transparent native-to-ascii conversion
主要用于转换ascii
,一般都要勾选,不然Properties
文件中的注释显示的都不会是中文。- 上图标注 4 所示,IntelliJ IDEA 除了支持对整个 Project 设置编码之外,还支持对目录、文件进行编码设置。如果你要对目录进行编码设置的话,可能会出现需要
Convert
编码的弹出操作选择,强烈建议 在转换之前做好文件备份,不然可能出现转换过程变成乱码,无法还原。
- 如上图演示,对单独文件的编码修改还可以点击右下角的编码设置区。如果代码内容中包含中文,则会弹出演示中的操作选择。
Reload
表示使用新编码重新加载,新编码不会保存到文件中,重新打开此文件,旧编码是什么依旧还是什么。Convert
表示使用新编码进行转换,新编码会保存到文件中,重新打开此文件,新编码是什么则是什么。- 含有中文的代码文件,
Convert
之后可能会使中文变成乱码,所以在转换成请做好备份,不然可能出现转换过程变成乱码,无法还原。
由于编码问题引起的编译错误
- 编译报错:
找不到符号
、未结束的字符串文字
等的解决办法:
- 由于 UTF-8 编码文件有分
有BOM
和无BOM
之分,默认情况下 IntelliJ IDEA 使用的编译器是javac
,而此编译只能编译无BOM
的文件,有很多 Eclipse 用户在使用 IntelliJ IDEA 开发 Eclipse 项目的时候常常会遇到此问题。主要是因为 Eclipse 的编译器是Eclipse
,此编译器支持有BOM
的文件编译。故,解决办法是对于此文件进行 BOM 去除。- 批量去除 BOM,你可以 Google:
批量去除 BOM
、批量转换无 BOM
等关键字,网络上已有提供各种方案。- 除了通过去除 BOM 还有设置 IntelliJ IDEA 的编译器为
Eclipse
,但是一般不建议这样做。- 如果上述问题都无法解决,而且你也确认 IntelliJ IDEA 各个配置编码的地方都是
UTF-8
,报错文件编码也是是UTF-8 无 BOM
的话,那还有一种可能也会出现这种情况:项目配置文件有问题。项目编码的配置文件在:/项目目录/.idea/encodings.xml
。如果你会修改此文件可以进行修改,如果不会,那就删除掉.idea
整个目录,重启 IntelliJ IDEA 重新配置这个项目即可。
Tomcat 控制台输出乱码
-Dfile.encoding=UTF-8
编程字体推荐
IntelliJ IDEA 的便捷操作性,快捷键的功劳占了一大半,对于各个快捷键组合请认真对待。IntelliJ IDEA 本身的设计思维是提倡键盘优先于鼠标的,所以各种快捷键组合层出不穷,对于快捷键设置也有各种支持,对于其他 IDE 的快捷键组合也有预设模板进行支持。
关于各个快捷键的频率分类上可能每个人都有各自的看法,下面的整理也只是以我个人的使用习惯来划分的,而我应该是可以代表某一部分小众人员。但是我个人还是强烈建议你可以在我的基础上整理一份属于你的快捷键目录(删除掉多余的字眼,只保留快捷键内容),本篇文章也只是起到一个工具和引子的作用。
对于下面各个快捷键的使介绍描述也许用我个人语言翻译起来不够准确或是不全面,且在不同的文件类型上按出来的效果也可能结果不太一样,所以 强烈建议 你自己把各个快捷键都亲自操作下体会下各个快捷键的实际用法。
前提
由于文化的不同,我们使用的电脑必备一个软件就是中文输入法,而目前大多数人都使用搜狗拼音输入法或是其他类似的。而这些输入法跟 IntelliJ IDEA 有一个万恶的冲突永恒不变:快捷键冲突。所以为了配合 IntelliJ IDEA,我们要去掉这些输入法下的所有快捷键。
- 如上图红色圈住内容所示,默认是
逗号
我改为了 ESC 键下的波浪号
,Ctrl + 逗号
这个快捷键适合做智能提示用,下面的快捷键列表会讲。
- 如上图红色圈住内容所示,这些快捷键很容易跟 IntelliJ IDEA 快捷键冲突,需要全部去掉。
- 如上图红色圈住内容所示,QQ 这些快捷键也很容易跟 IntelliJ IDEA 快捷键冲突,需要全部去掉,最多保持一个截图功能即可。
可能还有其他一些软件,比如网易云音乐、有道词典等等这些软件都可能存在快捷键冲突,所以为了 IntelliJ IDEA 这些软件的快捷键都是值得舍弃的,如果你在开发的时候。
- IntelliJ IDEA 官方出的学习辅助插件:IDE Features Trainer:https://plugins.jetbrains.com/plugin/8554?pr=idea
Ctrl
快捷键 | 介绍 |
---|---|
Ctrl + F | 在当前文件进行文本查找 (必备) |
Ctrl + R | 在当前文件进行文本替换 (必备) |
Ctrl + Z | 撤销 (必备) |
Ctrl + Y | 删除光标所在行 或 删除选中的行 (必备) |
Ctrl + X | 剪切光标所在行 或 剪切选择内容 |
Ctrl + C | 复制光标所在行 或 复制选择内容 |
Ctrl + D | 复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 (必备) |
Ctrl + W | 递进式选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展选中范围 (必备) |
Ctrl + E | 显示最近打开的文件记录列表 (必备) |
Ctrl + N | 根据输入的 类名 查找类文件 (必备) |
Ctrl + G | 在当前文件跳转到指定行处 |
Ctrl + J | 插入自定义动态代码模板 (必备) |
Ctrl + P | 方法参数提示显示 (必备) |
Ctrl + Q | 光标所在的变量 / 类名 / 方法名等上面(也可以在提示补充的时候按),显示文档内容 |
Ctrl + U | 前往当前光标所在的方法的父类的方法 / 接口定义 (必备) |
Ctrl + B | 进入光标所在的方法/变量的接口或是定义处,等效于 Ctrl + 左键单击 (必备) |
Ctrl + K | 版本控制提交项目,需要此项目有加入到版本控制才可用 |
Ctrl + T | 版本控制更新项目,需要此项目有加入到版本控制才可用 |
Ctrl + H | 显示当前类的层次结构 |
Ctrl + O | 选择可重写的方法 |
Ctrl + I | 选择可继承的方法 |
Ctrl + + | 展开代码 |
Ctrl + - | 折叠代码 |
Ctrl + / | 注释光标所在行代码,会根据当前不同文件类型使用不同的注释符号 (必备) |
Ctrl + [ | 移动光标到当前所在代码的花括号开始位置 |
Ctrl + ] | 移动光标到当前所在代码的花括号结束位置 |
Ctrl + F1 | 在光标所在的错误代码处显示错误信息 (必备) |
Ctrl + F3 | 调转到所选中的词的下一个引用位置 (必备) |
Ctrl + F4 | 关闭当前编辑文件 |
Ctrl + F8 | 在 Debug 模式下,设置光标当前行为断点,如果当前已经是断点则去掉断点 |
Ctrl + F9 | 执行 Make Project 操作 |
Ctrl + F11 | 选中文件 / 文件夹,使用助记符设定 / 取消书签 (必备) |
Ctrl + F12 | 弹出当前文件结构层,可以在弹出的层上直接输入,进行筛选 |
Ctrl + Tab | 编辑窗口切换,如果在切换的过程又加按上delete,则是关闭对应选中的窗口 |
Ctrl + End | 跳到文件尾 |
Ctrl + Home | 跳到文件头 |
Ctrl + Space | 基础代码补全,默认在 Windows 系统上被输入法占用,需要进行修改,建议修改为 Ctrl + 逗号 (必备) |
Ctrl + Delete | 删除光标后面的单词或是中文句 (必备) |
Ctrl + BackSpace | 删除光标前面的单词或是中文句 (必备) |
Ctrl + 1,2,3...9 | 定位到对应数值的书签位置 (必备) |
Ctrl + 左键单击 | 在打开的文件标题上,弹出该文件路径 (必备) |
Ctrl + 光标定位 | 按 Ctrl 不要松开,会显示光标所在的类信息摘要 |
Ctrl + 左方向键 | 光标跳转到当前单词 / 中文句的左侧开头位置 (必备) |
Ctrl + 右方向键 | 光标跳转到当前单词 / 中文句的右侧开头位置 (必备) |
Ctrl + 前方向键 | 等效于鼠标滚轮向前效果 (必备) |
Ctrl + 后方向键 | 等效于鼠标滚轮向后效果 (必备) |
Alt
快捷键 | 介绍 |
---|---|
Alt + `|显示版本控制常用操作菜单弹出层 (必备) | |
Alt + Q | 弹出一个提示,显示当前类的声明 / 上下文信息 |
Alt + F1 | 显示当前文件选择目标弹出层,弹出层中有很多目标可以进行选择 (必备) |
Alt + F2 | 对于前面页面,显示各类浏览器打开目标选择弹出层 |
Alt + F3 | 选中文本,逐个往下查找相同文本,并高亮显示 |
Alt + F7 | 查找光标所在的方法 / 变量 / 类被调用的地方 |
Alt + F8 | 在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果 |
Alt + Home | 定位 / 显示到当前文件的 Navigation Bar |
Alt + Enter | IntelliJ IDEA 根据光标所在问题,提供快速修复选择,光标放在的位置不同提示的结果也不同 (必备) |
Alt + Insert | 代码自动生成,如生成对象的 set / get 方法,构造函数,toString() 等 (必备) |
Alt + 左方向键 | 切换当前已打开的窗口中的子视图,比如Debug窗口中有Output、Debugger等子视图,用此快捷键就可以在子视图中切换 (必备) |
Alt + 右方向键 | 按切换当前已打开的窗口中的子视图,比如Debug窗口中有Output、Debugger等子视图,用此快捷键就可以在子视图中切换 (必备) |
Alt + 前方向键 | 当前光标跳转到当前文件的前一个方法名位置 (必备) |
Alt + 后方向键 | 当前光标跳转到当前文件的后一个方法名位置 (必备) |
Alt + 1,2,3...9 | 显示对应数值的选项卡,其中 1 是 Project 用得最多 (必备) |
Shift
快捷键 | 介绍 |
---|---|
Shift + F1 | 如果有外部文档可以连接外部文档 |
Shift + F2 | 跳转到上一个高亮错误 或 警告位置 |
Shift + F3 | 在查找模式下,查找匹配上一个 |
Shift + F4 | 对当前打开的文件,使用新Windows窗口打开,旧窗口保留 |
Shift + F6 | 对文件 / 文件夹 重命名 |
Shift + F7 | 在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法 |
Shift + F8 | 在 Debug 模式下,跳出,表现出来的效果跟 F9 一样 |
Shift + F9 | 等效于点击工具栏的 Debug 按钮 |
Shift + F10 | 等效于点击工具栏的 Run 按钮 |
Shift + F11 | 弹出书签显示层 (必备) |
Shift + Tab | 取消缩进 (必备) |
Shift + ESC | 隐藏当前 或 最后一个激活的工具窗口 |
Shift + End | 选中光标到当前行尾位置 |
Shift + Home | 选中光标到当前行头位置 |
Shift + Enter | 开始新一行。光标所在行下空出一行,光标定位到新行位置 (必备) |
Shift + 左键单击 | 在打开的文件名上按此快捷键,可以关闭当前打开文件 (必备) |
Shift + 滚轮前后滚动 | 当前文件的横向滚动轴滚动 (必备) |
Ctrl + Alt
快捷键 | 介绍 |
---|---|
Ctrl + Alt + L | 格式化代码,可以对当前文件和整个包目录使用 (必备) |
Ctrl + Alt + O | 优化导入的类,可以对当前文件和整个包目录使用 (必备) |
Ctrl + Alt + I | 光标所在行 或 选中部分进行自动代码缩进,有点类似格式化 |
Ctrl + Alt + T | 对选中的代码弹出环绕选项弹出层 (必备) |
Ctrl + Alt + J | 弹出模板选择窗口,将选定的代码加入动态模板中 |
Ctrl + Alt + H | 调用层次 |
Ctrl + Alt + B | 在某个调用的方法名上使用会跳到具体的实现处,可以跳过接口 |
Ctrl + Alt + C | 重构-快速提取常量 |
Ctrl + Alt + F | 重构-快速提取成员变量 |
Ctrl + Alt + V | 重构-快速提取变量 |
Ctrl + Alt + Y | 同步、刷新 |
Ctrl + Alt + S | 打开 IntelliJ IDEA 系统设置 (必备) |
Ctrl + Alt + F7 | 显示使用的地方。寻找被该类或是变量被调用的地方,用弹出框的方式找出来 |
Ctrl + Alt + F11 | 切换全屏模式 |
Ctrl + Alt + Enter | 光标所在行上空出一行,光标定位到新行 (必备) |
Ctrl + Alt + Home | 弹出跟当前文件有关联的文件弹出层 |
Ctrl + Alt + Space | 类名自动完成 |
Ctrl + Alt + 左方向键 | 退回到上一个操作的地方 (必备) |
Ctrl + Alt + 右方向键 | 前进到上一个操作的地方 (必备) |
Ctrl + Alt + 前方向键 | 在查找模式下,跳到上个查找的文件 |
Ctrl + Alt + 后方向键 | 在查找模式下,跳到下个查找的文件 |
Ctrl + Alt + 右括号(]) | 在打开多个项目的情况下,切换下一个项目窗口 |
Ctrl + Alt + 左括号([) | 在打开多个项目的情况下,切换上一个项目窗口 |
Ctrl + Shift
快捷键 | 介绍 |
---|---|
Ctrl + Shift + F | 根据输入内容查找整个项目 或 指定目录内文件 (必备) |
Ctrl + Shift + R | 根据输入内容替换对应内容,范围为整个项目 或 指定目录内文件 (必备) |
Ctrl + Shift + J | 自动将下一行合并到当前行末尾 (必备) |
Ctrl + Shift + Z | 取消撤销 (必备) |
Ctrl + Shift + W | 递进式取消选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展取消选中范围 (必备) |
Ctrl + Shift + N | 通过文件名定位 / 打开文件 / 目录,打开目录需要在输入的内容后面多加一个正斜杠 (必备) |
Ctrl + Shift + U | 对选中的代码进行大 / 小写轮流转换 (必备) |
Ctrl + Shift + T | 对当前类生成单元测试类,如果已经存在的单元测试类则可以进行选择 (必备) |
Ctrl + Shift + C | 复制当前文件磁盘路径到剪贴板 (必备) |
Ctrl + Shift + V | 弹出缓存的最近拷贝的内容管理器弹出层 |
Ctrl + Shift + E | 显示最近修改的文件列表的弹出层 |
Ctrl + Shift + H | 显示方法层次结构 |
Ctrl + Shift + B | 跳转到类型声明处 (必备) |
Ctrl + Shift + I | 快速查看光标所在的方法 或 类的定义 |
Ctrl + Shift + A | 查找动作 / 设置 |
Ctrl + Shift + / | 代码块注释 (必备) |
Ctrl + Shift + [ | 选中从光标所在位置到它的顶部中括号位置 (必备) |
Ctrl + Shift + ] | 选中从光标所在位置到它的底部中括号位置 (必备) |
Ctrl + Shift + + | 展开所有代码 (必备) |
Ctrl + Shift + - | 折叠所有代码 (必备) |
Ctrl + Shift + F7 | 高亮显示所有该选中文本,按Esc高亮消失 (必备) |
Ctrl + Shift + F8 | 在 Debug 模式下,指定断点进入条件 |
Ctrl + Shift + F9 | 编译选中的文件 / 包 / Module |
Ctrl + Shift + F12 | 编辑器最大化 (必备) |
Ctrl + Shift + Space | 智能代码提示 |
Ctrl + Shift + Enter | 自动结束代码,行末自动添加分号 (必备) |
Ctrl + Shift + Backspace | 退回到上次修改的地方 (必备) |
Ctrl + Shift + 1,2,3...9 | 快速添加指定数值的书签 (必备) |
Ctrl + Shift + 左键单击 | 把光标放在某个类变量上,按此快捷键可以直接定位到该类中 (必备) |
Ctrl + Shift + 左方向键 | 在代码文件上,光标跳转到当前单词 / 中文句的左侧开头位置,同时选中该单词 / 中文句 (必备) |
Ctrl + Shift + 右方向键 | 在代码文件上,光标跳转到当前单词 / 中文句的右侧开头位置,同时选中该单词 / 中文句 (必备) |
Ctrl + Shift + 前方向键 | 光标放在方法名上,将方法移动到上一个方法前面,调整方法排序 (必备) |
Ctrl + Shift + 后方向键 | 光标放在方法名上,将方法移动到下一个方法前面,调整方法排序 (必备) |
Alt + Shift
快捷键 | 介绍 |
---|---|
Alt + Shift + N | 选择 / 添加 task (必备) |
Alt + Shift + F | 显示添加到收藏夹弹出层 / 添加到收藏夹 |
Alt + Shift + C | 查看最近操作项目的变化情况列表 |
Alt + Shift + I | 查看项目当前文件 |
Alt + Shift + F7 | 在 Debug 模式下,下一步,进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入 |
Alt + Shift + F9 | 弹出 Debug 的可选择菜单 |
Alt + Shift + F10 | 弹出 Run 的可选择菜单 |
Alt + Shift + 左键双击 | 选择被双击的单词 / 中文句,按住不放,可以同时选择其他单词 / 中文句 (必备) |
Alt + Shift + 前方向键 | 移动光标所在行向上移动 (必备) |
Alt + Shift + 后方向键 | 移动光标所在行向下移动 (必备) |
Ctrl + Shift + Alt
快捷键 | 介绍 |
---|---|
Ctrl + Shift + Alt + V | 无格式黏贴 (必备) |
Ctrl + Shift + Alt + N | 前往指定的变量 / 方法 |
Ctrl + Shift + Alt + S | 打开当前项目设置 (必备) |
Ctrl + Shift + Alt + C | 复制参考信息 |
其他
快捷键 | 介绍 |
---|---|
F2 | 跳转到下一个高亮错误 或 警告位置 (必备) |
F3 | 在查找模式下,定位到下一个匹配处 |
F4 | 编辑源 (必备) |
F7 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中 |
F8 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内 |
F9 | 在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上 |
F11 | 添加书签 (必备) |
F12 | 回到前一个工具窗口 (必备) |
Tab | 缩进 (必备) |
ESC | 从工具窗口进入代码文件窗口 (必备) |
连按两次Shift | 弹出 Search Everywhere 弹出层 |
官网快捷键资料
第三方快捷键资料
- 来自 eta02913:http://xinyuwu.iteye.com/blog/1005454
快捷键修改
- 按
Ctrl + Alt + S
弹出 IDE 设置,如上图选择左侧的Keymap
。- IntelliJ IDEA 支持两种方式来筛选我们要找的快捷键,一种是上图标注 1 所示的,通过输入快捷键描述内容;一种是上图标注 2 所示的,通过 按 指定快捷键快捷键,这里需要再次强调的是,这个输入框是自动监听你当前按下的按键,而不是用来输入的。
- 上图标注 3 所示,初安装的 IntelliJ IDEA 使用的是
Default
的快捷键模板,IntelliJ IDEA 默认的快捷键模板都是不可修改的。如果你直接修改,当前这个位置 IntelliJ IDEA 会自动变成Default Copy
,建议你养成习惯,修改之前先点击Copy
,拷贝一套快捷键模板,然后输入自己的命名。
- IntelliJ IDEA 是支持一个操作命令同时设置多个快捷键组合,就如上图的
Backspace
,同时支持Backspace
和Shift + Backspace
两组快捷键。- 要修改某个快捷键,选中快捷键介绍内容,右键,就会弹出如上图标注 1 所示操作选择。
- 命令
Add Keyboard Shortcut
用来添加新纯键盘快捷键组合。- 命令
Add Mouse Shortcut
用来添加新键盘 + 鼠标
快捷键组合,比如设置Ctrl + 左键单击
这类快捷组合。其中在弹出的添加面板中Click Pad
是用来监听当前鼠标是左键单击还是右键单击。- 命令
Add Abbreviation
根据 IntelliJ IDEA 的版本文档解释,添加简称主要是为了方便Search Everywhere
中使用,但是我尝试之后发现没办法根据我设置的简称搜索,暂时无法了解其作用。- 命令
Remove 快捷键
移出当前操作命令已设置的快捷键组合,由于 IntelliJ IDEA 默认就占用了很多快捷键组合,所以如果你要修改某个快捷键,建议还是删除掉旧的。
- IntelliJ IDEA 对其他 IDE 用户很友好,如上图对于其他主流的 IDE,快捷键上已经默认了有其过度快捷键模板了,但是我还是建议你专心使用 IntelliJ IDEA 的默认。
其他
- 如果你是一个 Vim 粉,IntelliJ IDEA 也为你准备了一个方案:如上图安装 IdeaVim 插件即可。
JRebel 介绍
在 Java Web 开发中, 一般更新了 Java 文件后要手动重启 Tomcat 服务器, 才能生效, 浪费不少生命啊, 自从有了 JRebel 这神器的出现, 不论是更新 class 类还是更新 Spring 配置文件都能做到立马生效,大大提高开发效率。
JRebel 安装
JRebel 的安装方法有两种, 一种是直接在 Tomcat 启动参数上面加上 JRebel 的参数, 另外一种是以插件的形式装到 IntelliJ IDEA 上, 比较推荐后者。
第一种安装方法:在 Tomcat 启动参数上加参数
首先先介绍第一种安装方法, 先在硬盘某个位置把 JRebel 解压出来
然后配置 IntelliJ IDEA 的 Tomcat
点 +
号选择 Tomcat Server
-> Local
几个关键的地方需要注意的, 就是首先要选择 Deployment
这个选项卡
选择自己的项目, 建议选择带 exploded
, 这个相当于改 Tomcat 的 CATALINA_HOME, 效率比较高
选择好后, 删掉默认的Make, 提高效率
接下来返回 Server
选项卡, 会发现多了一项 On frame deactivation
, 如果你刚才没有配置 Deployment
选项卡的话的这项是不会出现的
按如图所示的来配置, 特别需要注意的是 On 'Update' action
和On frame deactivation
这两项目一定要选择 Update classes and resources
, 否则类修改热部署不生效, 或者第三方模版框架例如 Freemarker 热部署不生效
接下来就是很关键的需要引入 JRebel 的地方了, 在 VM options 的最右边有个箭头, 点进去
Windows 输入:
-noverify
-agentpath:D:/dev_env/jrebel/jrebel_running/lib/jrebel64.dll
Linux 用这个:
-agentpath:/dev_env/jrebel/jrebel_running/lib/libjrebel64.so
Mac OS 用这个:
-agentpath:/dev_env/jrebel/jrebel_running/lib/libjrebel64.dylib
配置完成, 直接启动 Tomcat 即可, 不过此方法麻烦, 每次新建项目都要从新配置
第二种安装方法:使用 IntelliJ IDEA 插件
接下来介绍使用 IntelliJ IDEA 插件的方式启动 JRebel
首先是安装 JRebel 的插件, 安装方法和其他插件安装方法一样, 不过这里不采用在线安装, 直接选择本地安装, 直接选择插件安装即可
安装好后在设置里面会多出一项 JRebel 的配置
查看一下插件是否有效
绿色的 VALID
表示是有效的
在原来运行项目的按钮边上会多出两个绿色的按钮, 如图, 前面那个是 Run
, 后面那个是 Debug
自定义容器启动
配置 Tomcat 的方法和直接上面说的直接调用配置方法一样, 同样需要注意的是 On 'Update' action
和 On frame deactivation
这两项目一定要选择 Update classes and resources
, 唯一不同的是 VM options 这项不需要填, 放空就好 接下来直接启动项目, 一般选择后面那个 Debug 按钮
看到 Log 有 JRebel 输出的版本信息, 没有报错就是表示成功执行了, 随便改一个类试试吧
Maven 或 Gradle 启动
打开 JRebel Panel 窗口,然后勾选项目或模块即可,这时插件会在 src/main/resources 目录下生成 rebel.xml 文件,这里面指定了插件检测热部署文件夹的路径
然后在 Maven projects 或 Gradle projects 窗口,右键 Task 使用 JRebel 启动
启动之后更新资源重新编译(Ctrl + Shift + F9)即可
JRebel 官网有免费激活服务,到官网注册领取,请支持正版:
准备工作
service iptables stop
本地 Remote Server 配置
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
set JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
服务器 Tomcat 配置
vim /usr/program/tomcat7/bin/catalina.sh
(Windows 是编辑:catalina.bat)
export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
。服务器 Jetty 配置
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
就可以了。
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar {your jetty path} {your port} --path {your war} 1>/dev/null 2>&1 &
开始调试
转载来源:http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/keymap-introduce.html