IntelliJ IDEA 快捷键说明大全(中英对照、带图示详解)

2018-02-02 10:52:50

因为觉得网络上的 idea 快捷键不够详尽,所以特别编写了此篇文章,方便大家使用 idea O(∩_∩)O~

其中的英文说明来自于 idea 的官网资料,中文说明主要来自于自己的领会和理解,英文说明只是作为参考。重要的快捷键会附带图示,进行详细的说明。

每一部分会先列出所有的快捷键说明表,如果有不清楚的地方,再看后续的图示详解。

1 编辑【Editing】

快捷键英文说明中文说明
Ctrl + SpaceBasic code completion (the name of any class, method or variable)补全代码,由于经常与操作系统的输入法的切换冲突,所以实际很少用。一般直接在 idea 中开启输入自动补全机制。
Ctrl + Shift + SpaceSmart code completion (filters the list of methods and variables by expected type在列出的可选项中只显示出你所输入的关键字最相关的信息。(常用)
Ctrl + Shift + EnterComplete statement代码补全后,自动在代码末尾添加分号结束符
Ctrl + PParameter info (within method call arguments)在某个方法中,调用该按键后,会展示出这个方法的调用参数列表信息。
Ctrl + QQuick documentation lookup展示某个类或者方法的 API 说明文档
Ctrl + mouseover code Brief Info跳进到某个类或者方法源代码中进行查看。(常用)
Alt + InsertGenerate code… (Getters, Setters, Constructors, hashCode/equals, toString)自动生成某个类的 Getters, Setters, Constructors, hashCode/equals, toString 等代码。(常用)
Ctrl + OOverride methods展示该类中所有覆盖或者实现的方法列表,注意这里是字母小写的 O!
Ctrl + Alt + TSurround with… (if..else,try..catch, for, synchronized, etc.)自动生成具有环绕性质的代码,比如:if..else,try..catch, for, synchronized 等等,使用前要先选择好需要环绕的代码块。(常用)
Ctrl + /Comment/uncomment with line comment对单行代码,添加或删除注释。分为两种情况:如果只是光标停留在某行,那么连续使用该快捷键,会不断注释掉下一行的代码;如果选定了某行代码(选定了某行代码一部分也算这种情况),那么连续使用该快捷键,会在添加或删除该行注释之间来回切换。(常用)
Ctrl + Shift + /Comment/uncomment with block comment对代码块,添加或删除注释。它与 Ctrl + / 的区别是,它只会在代码块的开头与结尾添加注释符号!(常用)
Ctrl + WSelect successively increasing code blocks选中当前光标所在的代码块,多次触发,代码块会逐级变大。(常用)
Ctrl + Shift + WDecrease current selection to previous state是 Ctrl + W 的反向操作,多次触发,代码块会逐级变小,最小变为光标。
Alt + QContext info展示包含当前光标所在代码的父节点信息,比如在 java 方法中调用,就会展示方法签名信息。
Alt + EnterShow intention actions and quick-fixes展示当前当前光标所在代码,可以变化的扩展操作
Ctrl + Alt + LReformat code格式化代码 (常用)
Ctrl + Alt + OOptimize imports去除没有实际用到的包,这在 java 类中特别有用。(常用)
Ctrl + Alt + IAuto-indent line(s)按照缩进的设定,自动缩进所选择的代码段。
Tab / Shift + TabIndent/unindent selected lines缩进或者不缩进一次所选择的代码段。(常用)
Ctrl + X 或 Shift DeleteCut current line or selected block to clipboard剪切当前代码。 (常用)
Ctrl + C 或 Ctrl + InsertCopy current line or selected block to clipboard拷贝当前代码。 (常用)
Ctrl + V 或 Shift + InsertPaste from clipboard粘贴之前剪切或拷贝的代码。(常用)
Ctrl + Shift + VPaste from recent buffers…从之前的剪切或拷贝的代码历史记录中,选择现在需要粘贴的内容。(常用)
Ctrl + DDuplicate current line or selected block复制当前选中的代码。(常用)
Ctrl + YDelete line at caret删除当前光标所在的代码行。(常用)
Ctrl + Shift + JSmart line join把下一行的代码接续到当前的代码行。
Ctrl + EnterSmart line split当前代码行与下一行代码之间插入一个空行,原来所在的光标不变。(常用)
Shift + EnterStart new line当前代码行与下一行代码之间插入一个空行,原来光标现在处于新加的空行上。(常用)
Ctrl + Shift + UToggle case for word at caret or selected block所选择的内容进行大小写转换。。(常用)
Ctrl + Shift + ]/[Select till code block end/start从当前光标所在位置开始,一直选择到当前光标所在代码段起始或者结束位置。
Ctrl + DeleteDelete to word end删除从当前光标所在位置开始,直到这个单词的结尾的内容。
Ctrl + NumPad(+/-)Expand/collapse code block展开或收缩代码段。 (常用)
Ctrl + Shift + NumPad(+)Expand all展开所有代码段。
Ctrl + Shift + NumPad(-)Collapse all收缩所有代码段。
Ctrl + F4Close active editor tab关闭当前标签页。
Shift + F6
修改名字。(常用)

1.1 Ctrl + Shift + Space 示例(智能补全)

使用前,用于补全的列表,默认是以输入的关键字作为前缀的:

使用后,用于补全的列表,会把与输入的关键字最相关的信息排到最前面,比如这里的 Resource 的实现类会直接过滤出来,很方便吧 O(∩_∩)O~:

1.2 Ctrl + P 示例(方法参数列表)

1.3 Ctrl + Q 示例(API 说明文档)

不大好用,字体太小了,还不如直接 [ctrl + 点击] 看源代码来的方便!

1.4 Alt + Insert 示例(自动生成与类相关的代码)

如果绑定了 Spring 框架,还能自动生成与 Spring 相关的依赖参数哦:

1.5 Ctrl + O 示例(该类中所有覆盖或者实现的方法列表)

1.6 Ctrl + Alt + T 示例(生成具有环绕性质的代码)

再强调一遍,使用前要先选择好需要环绕的代码块!没有选择代码块,还做环绕干嘛呢 O(∩_∩)O~ 

在右边的 Surround with 列表,就是目前支持的自动代码环绕功能,可以直接通过列表最左边的快捷键选择,是不是很方便呀 O(∩_∩)O~

它还支持自定义的代码模板(Live templates)呢,很强大吧。

1.7 Ctrl + Shift + V 示例(剪切或拷贝的代码历史记录中,选择粘贴的内容)

这是一个很酷的功能 O(∩_∩)O~,它会把之前剪切或拷贝的代码历史记录(最近 5 条)展示出来,让你来选择哦。可惜的是,列表选项如果是中文会乱码,还好内容可以正常显示:

2 查找或替换【Search/Replace】

快捷键英文说明中文说明
Ctrl + FFind在当前标签页中进行查找,还支持正则表达式哦。(常用)
F3Find next如果找到了多个查找结果,每调用一次就会跳到下一个结果,很方便哦。
Shift + F3Find previous是 F3 的反向操作,即每调用一次就会跳到上一个结果。
Ctrl + RReplace在当前标签页中进行替换操作。(常用)
Ctrl + Shift + FFind in path通过路径查找。(常用)
Ctrl + Shift + RReplace in path通过路径替换。(常用)

2.1 Ctrl + F (查找)

触发后,会打开一个查找面板:

具体含义如下:

图示说明
向上箭头就是 快捷键【Shift + F3】,每调用一次就会跳到上一个结果。
向下箭头就是 快捷键【F3】,每调用一次就会跳到下一个结果。
加号符号把当前的高亮项加入到选中的列表中。
减号符号把当前的高亮项从选中的列表中移除。
勾选符号把所有的查找结果同时选中,这很适合批量操作。
文本内的向上箭头打开查询结果列表面板。
两个框加一个向下箭头更多选项。
Match Case是否大小写敏感。
Regex正则表达式。
Words匹配单词。
x matchesx 表示的是找到的记录数。

勾选符号选中效果:

点击文本内的向上箭头,打开后的查询结果列表面板:

两个框加一个向下箭头,会变成一个大文本输入框,而且还多出一个查看搜索历史的按钮:

2.2 Ctrl + Shift + F (通过路径查找)

3 查看使用情况【Usage Search】

主要是查看当前光标所在内容使用情况。

快捷键英文说明中文说明
Alt + F7Find usages在当前项目中的使用情况,会打开一个使用情况面板。
Ctrl + F7Find usages in file在当前文件中的使用情况,找的内容会低亮显示。
Ctrl + Shift + F7在当前文件中的使用情况,找的内容会高亮显示。
Ctrl + Alt + F7Show usages打开使用情况列表。 (常用)

3.1 Ctrl + Alt + F7(打开使用情况列表)

4 编译与运行【Compile and Run】

快捷键英文说明中文说明
Ctrl + F9Make project (compile modifed and dependent)编译项目(如果之前有编译过,那么只会编译那些修改的类或者依赖的包)。
Ctrl + Shift + F9Compile selected file, package or module编译所中的范围(如果在某个类中,那么只会编译当前类)。
Alt + Shift + F10Select configuration and run会打开一个已经配置的运行列表,让你选择一个后,再运行。
Alt + Shift + F9Select configuration and debug会打开一个已经配置的运行列表,让你选择一个后,再以调试模式运行。
Shift + F10Run立即运行当前配置的运行实例,这个在单元测试中特别好用。 (常用)
Shift + F9Debug立即以编译模式运行当前配置的运行实例。
Ctrl + Shift + F10Run context configuration from editor按照编辑器绑定的文件类型,运行相关的程序。比如一个 html 页面,调用后,会直接打开一个浏览器。

4.1 Alt + Shift + F10(打开运行列表,选择一个运行)

5 调试【Debugging】

快捷键英文说明中文说明
F8Step over跳到当前代码下一行。 (常用)
F7Step into跳入到调用的方法内部代码。 (常用)
Shift + F7Smart step into会打开一个面板,让你选择具体要跳入的类方法,这个在复杂的嵌套代码中特别有用。
Shift + F8Step out跳出当前的类,到上一级。 (常用)
Alt + F9Run to cursor让代码运行到当前光标所在处,非常棒的功能。 (常用)
Alt + F8Evaluate expression打开一个表达式面板,然后进行进一步的计算。
F9Resume program结束当前断点的本轮调试(因为有可能代码会被调用多次,所以调用后只会结束当前的这一次);如果有下一个断点会跳到下一个断点中。(常用)
Ctrl + F8Toggle breakpoint在当前光标处,添加或者删除断点。
Ctrl + Shift + F8View breakpoints打开当前断点的面板,可以进行条件过滤哦。

5.1 Shift + F7(选择具体要跳入的类方法)

5.2 Alt + F8 (计算表达式)

注意:要在当前断点之前的代码中,选择某一个变量运行才有效,因为只有代码运行过了,才会有值的呀 O(∩_∩)O~

5.3 Ctrl + Shift + F8 (当前断点的面板)

6 导航【Navigation】

快捷键英文说明中文说明
Ctrl + NGo to class打开类查询框。(常用)
Ctrl + Shift + NGo to file打开文件查询框。(常用)
Ctrl + Alt + Shift + NGo to symbol打开文本查询框。
Alt + 右箭头/左箭头Go to next/previous editor tab跳到下一个/上一个编辑器标签。
F12Go back to previous tool window如果当前在编辑窗口,触发后,会跳到之前操作过的工具栏上。
ESCGo to editor (from tool window)从工具栏上,再跳回原来的编辑窗口,一般与 F12 配合使用。
Shift + ESCHide active or last active window隐藏最后一个处于活跃状态的工具窗口。
Ctrl + Shift + F4Close active run/messages/find/… tab同时关闭处于活动状态的某些工具栏窗口。
Ctrl + GGo to line跳转至某一行代码。。(常用)
Ctrl + ERecent files popup打开曾经操作过的文件历史列表。
Ctrl + Alt + 右箭头/左箭头Navigate back/forward在曾经浏览过的代码行中来回跳
Ctrl + Shift + BackspaceNavigate to last edit location跳转到最近的编辑位置(如果曾经编辑过代码)。
Alt + F1Select current file or symbol in any view打开一个类型列表,选择后会导航到当前文件或者内容的具体与类型相关的面板中。
Ctrl + B 或 Ctrl + 鼠标左键Go to declaration如果是类,那么会跳转到当前光标所在的类定义或者接口;如果是变量,会打开一个变量被引用的列表。(常用)
Ctrl + Alt + BGo to implementation(s)跳转到实现类,而不是接口。(常用)
Ctrl + Shift + IOpen quick definition lookup打开一个面板,里面包含类代码。
Ctrl + Shift + BGo to type declaration打开变量的类型所对应的类代码,只对变量有用。
Ctrl + UGo to super-method/super-class打开方法的超类方法或者类的超类,只对有超类的方法或者类有效。
Alt + 上/下箭头Go to previous/next method在某个类中,跳到上一个/下一个方法的签名上。
Ctrl + ]/[Move to code block end/start移动光标到类定义的终止右大括号或者起始左大括号。
Ctrl + F12File structure popup打开类的结构列表。(常用)
Ctrl + HType hierarchy打开类的继承关系列表。(常用)
Ctrl + Shift + HMethod hierarchy打开某个类方法的继承关系列表。
Ctrl + Alt + HCall hierarchy打开所有类的方法列表,这些方法都调用了当前光标所处的某个类方法。(常用)
F2/Shift + F2Next/previous highlighted error在编译错误的代码行中来回跳。
F4Edit source打开当前光标所在处的方法或类源码。
Alt + HomeShow navigation bar激活包路径的导航栏。
F11Toggle bookmark把光标所处的代码行添加为书签或者从书签中删除。(常用)
Ctrl + F11Toggle bookmark with mnemonic把光标所处的代码行添加为带快捷键的书签或者从快捷键书签中删除。
Ctrl + [0-9]Go to numbered bookmark跳转到之前定义的快捷键书签。
Shift + F11Show bookmarks打开书签列表。(常用)

6.1 Ctrl + N (打开类查询框)

键入类名的关键字,会自动出现相关的类哦,右侧还有一个勾选项,能够把引用的 jar 包中的类也加进来,很强大 O(∩_∩)O~

6.2 Ctrl + Alt + 右箭头/左箭头(在曾经浏览过的代码行中来回跳)

如果操作系统装的是 NVIDIA 显卡驱动程序,那么触发这个热键,会把旋转显示内容,而不是触发 idea 的功能,因为 idea 热键被 NVIDIA 显卡驱动给劫持咯。

解决方法是禁用 NVIDIA 显卡驱动所有快捷键,:

1、控制面板-》显示-》屏幕分辨率:

2、点击【高级设置】-》核芯显卡控制面板:

3、图形属性-》选项与支持-》禁用所有快捷键(这些快捷键几乎没有什么用处!)

6.3 Alt + F1(打开一个类型列表)

6.4 F11(添加为书签或者从书签中删除)

书签不是默认视图,所以我们要把它添加到当前视图中:View -> Tool Windows -> Favorites,打开 Favorites 面板:

Favorites 面板中的 Bookmarks 就是我们添加的书签哦:

或者直接使用 Shift + F11,打开书签列表也可以的哦 O(∩_∩)O~。

6.5 Ctrl + F11 (添加或删除带快捷键的书签)

会打开一个设置快捷键的面板,比如这里点击了 1,那么它的快捷键就是 Ctrl + 1。

注意不要选择面板提供的 26 个大写字母,因为这会与 idea 的其他快捷键冲突,不知道 idea 为什么要把它们放在这里?好奇怪 O(∩_∩)O~

  • 2018-04-03 10:22:20

    JQuery如何监听DIV内容变化

    这几天在做一个微博的接入,需要判断微博是否被关注,要检查微博标签的DIV是否有“已关注”的字符,但这个DIV的内容是微博JSSDK动态生成。$("#id").html()是获取不到我想要的内容。原因是当我们获取的时候内容还没有改变,所以获取不到,如果就想到监听这个DIV内容变化后,再来获取就个时候就能获取到了。于是产生新的问题,如何监听DIV的变化?

  • 2018-04-04 23:52:03

    PowerManager之PowerManager

    当你在做一些事情时,如果持续时间过长,那么一段时间后屏幕会灭掉,如果你想在你做这些事时屏幕始终保持点亮状态,那么你需要WakeLock的帮助。

  • 2018-04-07 23:35:16

    使用Intent传递对象的两种方式

    Intent 的用法相信你已经比较熟悉了,我们可以借助它来启动活动、发送广播、启动服务等。在进行上述操作的时候,我们还可以在Intent 中添加一些附加数据,以达到传值的效果,比如在FirstActivity 中添加如下代码:

  • 2018-04-10 14:59:59

    JS实现数组去重方法总结(六种方法)

    这篇文章给大家总结下JS实现数组去重方法(六种方法),面试中也经常会遇到这个问题。文中给大家引申的还有合并数组并去重的方法,感兴趣的朋友跟随脚本之家小编一起学习吧

  • 2018-04-13 17:28:33

    jsoup 使用总结4--高级用法之 script js 脚本

    大部分时候,我们使用jsoup解析网页的时候,都是直接找到某一类元素,或者按某种selector查询;具体使用方法可以参考jsoup官网文档 那么你有没有实际操作过,查找script js 脚本呢,因为很多时候页面的内容是根据js动态生成的,或者数据是动态变更;那么这个时候,我们只是获取html页面中script js脚本之间的内容。

  • 2018-04-15 12:56:05

    WebView控件之WebSettings各种配置方法源码总结

    WebSettings用于管理WebView状态配置,当WebView第一次被创建时,WebView包含着一个默认的配置,这些默认的配置将通过get方法返回,通过WebView中的getSettings方法获得一个WebSettings对象,如果一个WebView被销毁,在WebSettings中所有回调方法将抛出IllegalStateException异常。