IntelliJ IDEA 2017 快捷键大全

一、用户界面(User interface)

相比于很多同类型的 IDE,IntelliJ IDEA 在很多方面都显得更加优秀,IDEA 最吸引开发者的一个特性可能是它的沉浸式编程理念:在不离开 IDE 的情况下,可以调用 IDEA 的几乎所有特性。同时,IDEA 可以完全定制界面的布局,比如隐藏部分暂时不使用的工具栏和窗口,这样就可以获得更多的界面布局控制权。

IntelliJ IDEA 2017 快捷键大全

通常而言,IntelliJ IDEA 的界面上除了最主要的 Editor,还会有一些 Tool Windows,而且在编程的过程中需要在 Editor 和 Tool Windows 之间进行切换,对此,IntelliJ IDEA 提供了很多的快捷键,使得开发者在不厉害键盘的情况下就可以完成它们之间的快速切换。我们看几个最常用的快捷键,如下表:

Tool Window Shortcut Tool Window Shortcut
Project Alt+1 Version Control Alt+9
Run Alt+4 Debug Alt+5
Terminal Alt+F12 Editor Esc

此外,当读者需要专注于编码时,IntelliJ IDEA 还提供了 Distraction Free Mode,在该模式下,IDEA 会移除所有的工具栏、工具窗口和编辑标签等。读者可以利用主菜单中的 View菜单进入:View -> Enter Distraction Free Mode。当然,也可以直接利用快捷键:Ctrl+Shift+F12 在默认布局模式和 Distraction Free Mode 之间进行切换。

IntelliJ IDEA 2017 快捷键大全

编程经验表明,任何 IDE 在处理一个文件或者目录众多、层次嵌套很深的项目结构时,开发者都可能会迷失其中。为了解决此问题,IntelliJ IDEA 提供了一个 导航栏(Navigation Bar),该导航栏其实就是 项目工具窗口(Project tool Window) 的另一个紧凑视图,非常清晰地展示开发者所操作的文件所处的位置细节和层次。导航栏的快捷键是 Alt+Home。

IntelliJ IDEA 2017 快捷键大全

为了提升开发者的效率,IntelliJ IDEA 中的很多组件(工具窗口和弹出框)都提供了快速搜索(speed search)。利用这个快速搜索,开发者可以过滤一个列表和导航到一个特定的元素。

当不知道某个操作的快捷键时,可以利用查找操作(Find action)来查找。只需记住查找操作的快捷键是 Ctrl+Shift+A。在查找操作的搜索框中输入操作名称,就可以看到对应的快捷键或者直接调用。

二、编辑技能(Editor basics)

在 IntelliJ IDEA 中,引入了一个 本地操作历史记录(Local History) 的工具,利用该工具可以完成撤销重构操作和恢复修改操作的需求,这样以后,完全不需要开发者去关心保存每次的修改内容。换一种说法就是 IntelliJ IDEA 是一个不需要主动进行保存操作的 IDE。现在,我们看几个最常用的快捷键,如下表:

功能 快捷键

移动整行代码 Ctrl+Shift+Up/Down

移除整行代码 Ctrl+Y

添加代码块的注释 Ctrl+Shift+/

在当前文件中查找和替换 Ctrl+R

上一个查找结果 Shift+F3

下一个查找结果 F3

在访问历史中进行导航 Ctrl+Alt+Left/Right

创建 Alt+Insert

复制整行代码到下一行 Ctrl+D

添加/移除整行代码的注释 Ctrl+/

在当前文件中查找 Ctrl+F

在打开的标签页之间切换 Alt+Right/Left

高亮显示 Ctrl+F7

代码围绕 Ctrl+Alt+T

针对实际编辑中的选取字符串操作,IntelliJ IDEA 提供了快捷键:Ctrl+W 会基于语法扩展已选取的字符串;Ctrl+Shift+W 会基于语法收缩已选取的字符串。

针对实际编辑中的同时选择多个代码块,IntelliJ IDEA 提供了快捷键;Alt+J 会选择/取消某个代码块,Alt+Shift+J 也具有同样的功能。

三、代码助手(Code completion)

首先,最基本最常用的代码助手是 Ctrl+Space(空格),利用这个基本助手(Basic completion)可以完成变量、类型、方法、表达式等的最基本完成建议。而且,如果连续两次按下 Ctrl+Space,它会提供出更多的选择,包括私有成员和一些还未引入当前文件的静态成员等。

在 IntelliJ IDEA 中,除了基本助手之外,还提供了一个更加聪明的智能助手(Smart completion),这个智能助手更加明白开发者在当前上下文环境中需要的类型、数据流等,并提供更加准确的选项。调用智能助手的快捷键是 Ctrl+Shift+Space(空格)。而且,如果连续两次按下 Ctrl+Shift+Space,它会提供出更多的选择,包括调用链。

在修改鼠标插入符所在的字符串时,按下 Enter 键后会插入选择的字符串,但很多时候我们需要的是复写旧字符串,而不是插入字符串并获得一个有冗余字符的字符串。所以,对于复写/替换旧字符串,应该使用 Tab 键。

实际上,IntelliJ IDEA 还提供了一个语句自动完成(Statement completion)的功能,快捷键是 Ctrl+Shift+Enter。语句自动完成 会自动地添加缺失的 括号、中括号和必须的格式。

对于给方法或者构造方法提供建议参数的功能,IntelliJ IDEA 也提供了快捷键:Ctrl+P。IntelliJ IDEA 会显示每一个重载方法或重载构造方法的参数信息,并且会高亮与方法已有参数最匹配的那个。此外,IntelliJ IDEA 中的 后缀助手(Postfix completion) 会基于 . 符号之后的输入转换一个已存在的表达式为另一个表达式。

四、导航(Navigation)

当前文件(Recent Files)

很多时候,开发者都需要面对项目的复杂目录与文件,而且需要快速地在它们之间进行切换。对此,IntelliJ IDEA 提供一个非常节省时间的功能,名为 当前文件(Recent Files),可以利用快捷键 Ctrl+E 启动此功能。默认情况下,焦点位于最近被访问的文件上。而且,利用此功能还可以快速定位和切换到其他的工具窗口(Tool Window)。

IntelliJ IDEA 2017 快捷键大全

对于实际编码实践中的快速定位到某个类,IntelliJ IDEA 同样提供了快捷方式:Ctrl+N。在弹出的搜索框中,支持复杂的表达式,比如驼峰形式、路径、定位到行、中间名匹配等,甚至支持简单的通配查找。如果连续两次按下 Ctrl+N,还可以查找和导航到项目之外的类。此外,对于文件和目录导航,IntelliJ IDEA 提供的快捷键是 Ctrl+Shift+N。当然,导航到目录时,需要在查找表达式的最后加上 “/” 字符。对于符号(Symbol)导航,IntelliJ IDEA 的快捷键是 Ctrl+Shift+Alt+N,这个功能常用于查找方法和属性。

结构(Structure)

除了在多个文件之间进行切换之外,开发者经常还需要在一个文件之内进行导航。完成文件内导航的最简单方式就是使用 Ctrl+F12 快捷键,在弹出窗口(pop-up)中会展示当前文件的结构,这样就可以快速地进行定位导航了。

IntelliJ IDEA 2017 快捷键大全

选择进入(Select in)

当我们需要在某个特定的工具窗口(Tool window)中定位当前的文件时,我们可以利用 IntelliJ IDEA 提供的 选择进入(Select in) 功能,该功能的快捷键是:Alt+F1。

IntelliJ IDEA 2017 快捷键大全

最后,我们需要总结一下关于导航(Navigation)的功能与快捷键。如下表:

功能 快捷键

全项目搜索 Double Shift

类导航 Ctrl+N

文件/目录导航 Ctrl+Shift+N

符号导航 Ctrl+Shift+Alt+N

当前文件 Ctrl+E

文件结构 Ctrl+F12

选择进入 Alt+F1

定义处导航 Ctrl+B

类层次导航 Ctrl+H

UML导航 Ctrl+Alt+U

五、快速提示(Quick pop-ups)

实际编码中,对于某些不熟悉的类或者方法,开发者可能需要停下来查找资料。为此,IntelliJ IDEA 提供了更加便利的工具来协助开发者。其中 快速提示(Quick pop-ups)就是提供与鼠标定位处符号相关的有效的信息,减少开发者的停顿时间。下面,我们总结一些关于 pop-ups 的快捷键,帮助开发者提高效率:

功能 快捷键

文档 Ctrl+Q

用法 Ctrl+Alt+F7

定义 Ctrl+Shift+I

实现 Ctrl+Alt+B

实际上,快速提示不仅仅在 Eidtor 中有效,这些快捷键在其他的窗口中同样是有效的。

六、重构技能(Refactoring basics)

作为一名现在的程序员,重构已经是一个必备技能。为此,IntelliJ IDEA 提供了一系列复杂的自动重构代码工具,这样就可以快速提供开发者的重构效率。而且,IDEA 提供的重构技能非常智能。首先,在应用任何重构技能之前,不需要开发者必须选择重构的对象,IntelliJ IDEA 足够智能,可以发现开发者希望重构的代码。当然,在具有多个选择的情况下,会提醒开发者进行确认。下面,我们总结一些关于 重构 的快捷键,帮助开发者提高效率:

功能 快捷键

重命名 Shift+F6

抽取属性 Ctrl+Alt+F

抽取方法 Ctrl+Alt+M

内联 Ctrl+Alt+N

移动 F6

抽取变量 Ctrl+Alt+V

抽取常量 Ctrl+Alt+C

抽取参数 Ctrl+Alt+P

拷贝 F5

重构this Ctrl+Shift+Alt+T

如果需要撤销最新的重构操作,把焦点切换到 Project tool Window 之后,按 Ctrl+Z 。

通过使用重构中的抽取功能,可以非常快速地实现替换指定字符串的操作。

查找用法(Finding usages)

实际编程中,开发者经常需要查找和定位引用了鼠标焦点所在位置符号的所有代码片段,为此,IntelliJ IDEA 提供了查找用法(Finding usages)功能。无论需要查找的符号是类、方法、熟悉、参数还是其他语句等,查找用法功能都可以实现。按下 Alt+F7 就会获得一个按照用法类型、模块和文件分组的引用列表。

当然,如果开发者有定制查找用法功能所使用的算法的需求,按下 Ctrl+Shift+Alt+F7 就可以。此外,如果开发者需要查找的仅仅是普通的文本,那么可以使用 Find in Path 功能,该功能的快捷键是 Ctrl+Shift+F。

七、检查(Inspections)

检查(Inspections)内建于 IntelliJ IDEA 中的静态代码检查工具中,用于帮助开发者发现可能存在的bug、定位毫无用处的代码、发现性能低效的代码和提高代码的整体结构。而且,很多的检查功能不仅支出了问题代码的位置,而且还提供了快速修正此问题代码的正确建议。可以使用 Alt+Enter 选择其中的一个修正建议。

当一个文件中有多个高亮的问题时,可以使用 F2 和 Shift+F2 在这些问题之间进行前后导航。

检查是一个比较复杂和消耗性能的操作,在编写代码的过程中不建议开启 on-the-fly 模式,而是应该在完成编程后执行对整个项目代码的静态检查时,再开启检查功能。有两种方法可以完成这种设置:通过主菜单中 Analyze 菜单:Analyze -> Inspect Code;通过主菜单中 Analyze 菜单:Analyze -> Run Inspection by Name。

八、代码风格(Code style and formatting)

默认情况下,IntelliJ IDEA 使用的代码风格是我们在 Code Style settings 中设置的,如果需要个性化定制代码,可以查看本系列教程的设置教程。在绝大多数情况下,IntelliJ IDEA 会自动调用格式化代码的命令,维护好代码风格。当然了,开发者也可以显示地执行格式化命令,常用的快捷键如下表:

功能 快捷键 功能 快捷键

重写格式化 Ctrl+Alt+L 自动行缩进 Ctrl+Alt+I

优化导入语句

默认情况下,IntelliJ IDEA 使用空格替换了tabs,当然,可以在 Settings 中修改此行为。

九、版本控制技能(Version control basics)

正如本系列教程的前文所述,欢迎界面中的 Checkout from Version Control 和项目界面中主菜单的 VCS 菜单都具有开启从 版本控制系统(VCS) 中导入项目的功能。而且,为了可以在当前文件、目录或整个项目上执行 VCS 操作,我们可以通过按下 Alt+后引号(后引号是指键盘上 Esc 下面的那个键。) 快捷键来调出 VCS操作窗口(VCS operations pop-up)。

一旦配置好了 VCS,就可以在 IntelliJ IDEA 中看到 Version Control tool window。实际上,在任何时候都可以利用快捷键 Alt+9 切换到这个工具窗口。在这个工具窗口的 Local Changes 选项卡中会显示出本地的所有修改文件,包括 staged 和 unstaged。现在,我们看一下关于 VCS 的常用快捷键:

功能 快捷键

聚焦版本控制工具窗口 Alt+9

提交修改 Ctrl+K

推送提交 Ctrl+Shift+K

VCS操作窗口 Alt+后引号

更新项目 Ctrl+T

利用快速列表和上下文菜单中的注解,可以查看任何文件是被谁在什么时间修改等详细信息。

分支(Branches)

为了在分支上执行操作,可以通过使用主菜单中 VCS 菜单的 Branches;也可以使用 VCS操作窗口;再或者使用开始栏中的右键功能。需要注意的是,对于多个仓库而言,IntelliJ IDEA 会同时在所有的分支上执行所有的 VCS 操作,所以完全没有必要在它们之间进行手工切换。

当需要临时保存一些本地的修改时,而且不想把这些修改提交到仓库中时,开发者可以利用 Shelves,stashes 和 patches 命令达成此目的。关于这些命令的具体用法看参看本站的 Git 教程。

十、Make(制作)

默认情况下,IntelliJ IDEA 并不会自动编译保存的项目。为了对项目执行编译,我们可以利用主菜单的功能:Build -> Make Project,当然也可以直接使用快捷键:Ctrl+F9。

Running and debugging(运行与调试)

为了可以运行 IntelliJ IDEA 的 Run/Debug 功能,需要首先利用主菜单的功能:Run -> Edit Configurations 配置一下运行与调试的参数。运行与调试代码的操作比较频繁,可以直接利用快捷键:

功能 快捷键 功能 快捷键

运行(Run) Shift+F10 调试(Debug) Shift+F9

当 IntelliJ IDEA 处于调试模式时,可以利用其中的 Evaluate expression tool 执行任何的表达式。启动 Evaluate expression tool 的快捷键是 Alt+F8。而且,在该工具中还提供了与在 Editor 中一样的代码完成功能,十分方便。实际上,调试代码需要更精细的流程控制,所以 IntelliJ IDEA 提供了很多的调试快捷键:

功能 快捷键

切换断点 Ctrl+F8

Smart step into Shift+F7

Step out Shift+F8

Evaluate expression Alt+F8

Step into F7

Step over F8

Resume F9

如果在调试的过程中,希望可以重试(rewind),可以使用 丢弃栈帧(Drop Frame)的功能。在错过了某些希望观察过程的调试流程之后,该功能可以实现恢复现场的目的。使用这个功能可以做到将程序的状态回退到期望观察的位置,而不需要又重头开始。

调试过程中,按住 Alt 键的同时点击断点符号可以快速地使该断点失效。

如果需要改变断点的细节,比如断点的条件,可以按下 Ctrl+Shift+F8。

重装和热部署(Reloading changes and hot swapping)

有时,在调试的过程中才想起来需要对代码做一些小幅度的修改。那么是否可以在不停止本次调试过程的情况下做到呢?由于 Java 的 JVM 具备了 热交换(HotSwap)的特性,所以,在 IntelliJ IDEA 执行 Make 命令的过程中会自动处理这种情况,检查代码变化,自动重装。

应用服务器(Application servers)

在 IntelliJ IDEA 中,为了把一个应用部署到服务器中,需要如下三步:

配置应用的属性:File -> Project Structure -> Artifacts (Maven和Gradle项目自动完成此步骤)。

配置服务器的属性:Settings -> Preferences -> Application Server。

配置运行参数:Run -> Edit Configurations ,确定部署的属性和选择具体的服务器。

而且,在任何时候都可以通过 Build -> Build Artifacts 让 IntelliJ IDEA 去 构建/重写构建应用的属性。

如果需要把代码的修改应用到已经在运行的应用中,除了可以利用 Make 之外,还可以使用 Update 操作,Update 操作的快捷键是 Ctrl+F10。注意,这个更新操作只对 Exploded artifact 类型的应用才有效。而且,开发者还可以控制更新操作的应用范围是 resources 还是 classes 与 resources。

如果这个更新操作是运行在调试模式中,IntelliJ IDEA 使用 HotSwap 技术,或者使用 Hot redeployment 技术。

十一、构建工具(Working with build tools)

一旦利用 Maven 或 Gradle 之类的工具来管理项目,我们就可以直接编辑项目中的 pom.xml 或 build.gradle 文件。任何对于这两个文件的修改,都需要被 IntelliJ IDEA 感知并同步修改项目模型。当然,我们可以配置 IDEA,让其自动同步这两个文件的变化内容。

pom.xml:File -> Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Importing -> Import Maven projects automatically

build.gradle:File -> Settings -> Preferences -> Build,Execution,Deployment -> Build Tools -> Gradle -> Use auto-import

当然,为了方便进行手工同步,在 Maven/Gradle tool window toolbar 中都提供了对应的快捷按钮。

最后,终于完成,本文在学习过程中可以做为备忘录查阅,赶紧动起手来吧试试吧,发现属于你的惊喜!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容