前言

本文并不打算简单罗列 IntelliJ IDEA 快捷键,而是教你如何通过刻意的练习,来掌握IntelliJ IDEA 快捷键的操作。需要注意的是本文操作均使用Mac进行演示。文中会介绍如何查看 Windows 快捷键。

为什么要熟练使用你的开发工具

「程序员修炼之道」中有一段关于使用编辑器的内容如下:

要用好你的编辑器,在你开发时将其操作变成你的本能反应,使编辑器变成你双手的延伸。

这样做的好处是:可以大大提高我们的开发效率。而一名优秀的程序员必备的特性之一就是:开发效率高

为了强调其重要性,作者并专门将其提炼成一个珠玑:

Use a Single Editor Well 用好一种编辑器

针对用好编辑器书中给出如下操作方式指导:

如果这听起来像你...... 那么考虑......
我使用许多不同的编辑器,但是只使用其基本特性。 选择一种强大的编辑器,好好学习它。
我有最喜欢的编辑器,但不使用其全部特性。 学习它们,减少你需要敲击的键数。
我有最喜欢的编辑器,只要可能就使用它。 设法扩展它,并将其用于比现在更多的任务。
我认为你们在胡说,notepad 就是有史以来最好的编辑器 只要你愿意,并且生产效率很高,那就这样吧!但如果你发现自己在羡慕别人的编辑器,你可能要重新评估自己的位置了。

正是由于本书的启发,我下定决心想写一篇关于 IntelliJ IDEA 开发工具快捷键的介绍。闲话少说,接下来开始正式IDEA 操作之旅!

Mac键盘符号说明

首选需要说明的是本文内容是基于Mac系统进行演示的,因为在IntelliJ IDEA 中快捷键都是通过键盘符号来展示的,所以在介绍快捷操作前,我们需要先了解一下 Mac系统键盘符号。如果你已了解,可以绕过该小节内容。

Mac Intelli IDEA 中使用频率比较高按键有:

  • Command(或 Cmd)⌘

  • Shift  ⇧

  • Option(或 Alt)⌥

  • Control(或 Ctrl)⌃

  • Return ↩︎

  • Delete ⌫

  • Tab ⇥

  • 上箭头 ↑

  • 下箭头 ↓

  • 左箭头 ←

  • 右箭头 →

  • Page Up(Fn+↑)⇞

  • Page Down(Fn+↓)⇟

  • 右制表符(Tab键)⇥

  • 左制表符(Shift+Tab)⇤

  • Escape (Esc) ⎋

基础编辑操作

基础操作包括:选择、注释、删除、复制、移动、多重选择。还有一个最重要的操作就是:快捷键搜索,可以通过搜索方式查询忘记的快捷键。

Find Action 快捷键搜索

  • Command+Shift+A (⌘⇧A) 搜索快捷键。

例如:你想查询注释行的快捷键,执行 Command+Shift+A 然后输入 Comment Line 就可以看到注释行的快捷键就是 Cmd+/

image.png

Select 选择操作

选择操作更多是能让你解脱鼠标或控制面板。

  • Alt+Shift+右箭头(⌥⇧→):一个一个单词进行选中。

  • Alt+上箭头(⌥↑):按照代码块进行选中。

  • Alt+下箭头(⌥↓):减少代码块选中。

  • Cmd+A(⌘A):全选。

Comment Line 注释行

  • Cmd+/(⌘/):注释光标所在行代码,再次执行则取消注释。也可以选中多行后注释多行。

Delete Line 删除行

  • Cmd+删除键(⌘⌫):删除光标所在行内容。

  • Cmd+Z(⌘z): 撤销刚才的操作。

Duplicate:复制

  • Cmd+D(⌘d):复制光标所在行内容,你也可以选择多行进行复制。

Move:移动

  • Alt+Shift+下箭头(⌥⇧↓):向下移动光标所在行代码。

  • Alt+Shift+上箭头(⌥⇧↑):向上移动光标所在行代码。

  • Cmd+Shift+下箭头(⌘⇧↓):向下移动光标所在方法的代码。

  • Cmd+Shift+上箭头(⌘⇧↑):向上移动光标所在方法的代码。

Multiple Selections 多重选择

  • Ctrl+G(⌃g):选择下一个需要批处理的符号。

  • Ctrl+Shift+G(⌃⇧g):取消最后需要批处理的符号。

  • ESC:取消所有批处理操作。

  • Cmd+Ctrl+G(⌘⌃g):全选批处理符号内容。

Collapse:折叠

  • Cmd+-(⌘-):折叠光标所在方法代码。

  • Cmd++(⌘+):展开光标所在方法的代码。

  • Cmd+Shift++(⌘⇧+):展开所有方法代码。

  • Cmd+Shift+-(⌘⇧-):折叠所有方法代码。

Code Completion 代码智能提示

当执行代码智能提示快捷键后会弹出可能补全的代码,可以通过回车或者Tab 键进行选择。

Basic Completion 智能补全

  • Ctrl+空格(⌃Space):对于未完成代码进行智能补全提示。

  • Ctrl+2次空格(⌃2Space):对于未完成代码进行智能补全提示。

Smart Type Completion 智能类型补全

  • Ctrl+Shift+空格(⌃⇧Space):对于未完成代码进行智能类型补全提示。

  • Ctrl+Shift+2次空格(⌃⇧2Space):对于未完成代码进行智能类型补全提示。

Postfix Completion

Postfix Completion 是通过 .+后缀的方式完成类似 Live Template 的操作。Postfix Completion可以通过简单的后缀可以快捷生成你想要的代码,大大提高开发的效率。

我经常使用的Postfix列表:

  • .sout:快速为字符串生成打印代码。

  • .if:为条件判断生成if判断结构代码。

  • .notnull/.nn:生成对象不为null if判断结构代码。

  • .null:生成对象为null if判断结构代码。

  • .renturn:生成返回对象代码,map.rentrun == rentrun map

  • .new:生成对象代码,Person.new == new Person();

  • .fori:生成普通for循环代码结构。

  • .for:生成增强for循环代码结构。

sout 和 if 使用示例如下:

image.png

image.png

如果你想了解更多 Postfix 可以通过 Find Action(⌘⇧A)搜索 Postfix Completion 点击进入。

image.png

如下图所示,你可以看到所有的 Postfix 介绍和使用方式。

Statement Completion 完成代码

  • Cmd+Shift+回车(⌘⇧↩︎):自动添加结束符号;或者{}

Completion with Tab

  • Ctrl+空格(⌃Space)+Tab:智能提示列表的切换。例如:弹出公共字典类常量列表,然后使用Tab 使用选中的常量。

Refactorings 重构

Rename 重命名

  • Shift+F6(⇧F6):重新命名类名、方法名、文件名、变量名。

Extract Variable/Field 提取变量

  • Cmd+Alt+V(⌘⌥V):快速将代码中重复内容变成统一的变量。

Extract Constant 提取静态常量

  • Cmd+Alt+C(⌘⌥C):快速将代码中重复内容变成统一的静态常量。

Extract Method 提取方法

  • Cmd+Alt+M(⌘⌥M):快速将多行代码提取成一个方法。

Extract Parameter 提取方法参数

  • Cmd+Alt+P(⌘⌥P):快速将方法内的变量提取为方法的参数。

Code Assistance 代码协助

Code Formatting 代码格式化

  • Cmd+Alt+L(⌘⌥L):格式化文件的代码。

Parameter Info 参数信息提示

  • Cmd+P(⌘P):显示光标所在方法参数信息。

Quick Popups 查看文档信息

  • F1/Ctl+J(⌃J):查看方法文档信息。(光标在方法上)。

  • ESC(⎋ ):退出查看方法文档信息。

  • Alt+Space(⌥Space):查看方法具体逻辑(光标在方法上)。

Editor Coding Assistance

  • F2:跳转到有错误信息代码处。Cmd+F1(⌘F1):查看错误信息。

  • Alt+回车(⌥↩︎):快速处理错误信息。

  • Cmd+Alt+T(⌘⌥T):快速添加try catch 待修改

  • Cmd+Shift+F7(⌘⇧F7):高亮显示和选中文本相同的变量。

Navigation 导航

Jump to Source 查看源码

  • Cmd+下箭头(⌘↓):跳转查看源码。

Declaration/Implementation

  • Cmd+B(⌘B):跳转到一个类或者接口。Cmd+Alt+B:查看类或者接口的实现。

File Structure 文件结构

  • Cmd+F12(⌘F12):查看类的大纲视图。

Next/Previous Occurrences

  • Cmd+F(⌘F):搜索文件中的字符。

  • 回车/Cmd+G(⌘G):查找下一个匹配的字符。

  • Cmd+Shift+G(⌘⇧G):查找上一个匹配的字符。

关闭 查找窗口后你仍然可以使用选中进行上一个/下一个查找。

到这里一些常用最为基础的快捷键操作介绍完毕,看到这里你是不是也还是很....

你在开头不是说你不是简单罗列 Intelli IDEA 快捷键吗!

不要急,不要急。听我说。接下来我将隆重介绍一款IDEA快捷键操作神器:IDE Features Trainer。上述操作介绍均来自该插件实际操作内容。

当你安装完这个插件后会看到一个 Learn的图标,如下图所示:

image.png

点击每个小结进入后跟着提示进行操作,当你操作完毕后需要执行的内容会变灰,直到最后一个操作执行完毕后,会提示你进入下一个学习。具体效果如下:

如何你是Windows 系统用户,在你的IDEA中安装这个插件即可练习快捷键了。

文章最后我特意又搞了几个小练习,也是对你操作的小测试。需要注意的是以下练习均不能使用鼠标进行操作。

练习测试

基础编辑操作综合练习

完成下面一段代码操作,操作步骤如下:

  1. 复制 System.out.println("select") 到下一行20次。

  2. 选中整个select方法并复制到下一行,并将复制方法名改为fun

  3. 修改fun方法中的20个select为fun

  4. 删除掉一个打印fun代码

未修改前的代码:

public class EditorBasic {public void select(){System.out.println("select");//Cmd+D 19次//Cmd+Shift+右箭头 选中一个打印语句//Alt+上箭头选中整个方法 // Cmd+D 复制选中的方法}
}

按照操作步骤执行后的代码:

public class EditorBasic {public void select(){System.out.println("select");//省略19行一样的代码}public void fun(){System.out.println("fun");//省略18行一样的代码}
}

智能提示操作综合练习

未修改前的代码:

public class Person {private String name;private Integer type;
}```java
public class CommonConstants {public static final int VIP = 1;public static final int ORDINARY=0;
}
public class CodeCompletion {private String name="name";private String age="age";Map<String,String> map = null;public void fun() {initMap();map.forEach((k,v)->{Person person = new Person();person.setName(k);person.setType(CommonConstants.VIP);//Ctrl+空格 Tab//if (k.startsWith("zhuoqianmingyue")) Cmd+Shift+回车if/*if (k.startsWith("zhuoqianmingyue")) {person.setType(CommonConstants.VIP);//Ctrl+空格 Tab}*/});}private Map<String,String> initMap() {map = buildMap();map.put(name, "zhuoqianmingyue_1");map.put(name, "zhuoqianmingyue_2");map.put(name, "zhangsan");map.put(name, "lishi");//Ctrl+Shift+空格return   //Ctrl+Shift+空格}private Map<String,String> buildMap() {return Collections.emptyMap(); //Ctrl+Shift+空格}
}

操作后的代码:

操作步骤请参考注释

public class CodeCompletion {private String name="name";private String age="age";Map<String,String> map = null;public void fun() {initMap();map.forEach((k,v)->{Person person = new Person();person.setName(k);person.setType(CommonConstants.ORDINARY);if (k.startsWith("zhuoqianmingyue")) {person.setType(CommonConstants.VIP);}});}private Map<String,String> initMap() {map = buildMap();map.put(name, "zhuoqianmingyue_1");map.put(name, "zhuoqianmingyue_2");map.put(name, "zhangsan");map.put(name, "lishi");return map;}private Map<String,String> buildMap() {return Collections.emptyMap();}
}

重构操作综合练习

这个练习不给任何提示,通过前后代码对比,你可以使用到哪些快捷键?自己探索一下。

操作前的代码:

public class HuMan {private String name;private String type;public void say(String content){System.out.println(content);}//省略getter and setter
}
public class Refactorings {public void fun(){//结巴男HuMan man = new HuMan();man.setType("man");man.say("a");man.say("a");man.say("a");//正常女HuMan woman = new HuMan();woman.setType("woman");woman.say("a");}
}

操作后的代码

public class Refactorings {public void fun(){//结巴男String content = "a";HuMan man = manSay(new HuMan(), content);//正常女woManSay(man, content);}private HuMan manSay(HuMan man, String content) {man.setType("man");man.say(content);man.say(content);man.say(content);return man;}private void woManSay(HuMan man, String content) {HuMan woman = new HuMan();woman.setType("woman");woman.say(content);}
}

小结

练好一个工具操作没有什么捷径可走,唯有不断的刻意练习方能掌握。最后需要说明的是IDE Features Trainer 中仅提供常用快捷键操作,正所谓:快捷无止境,劝君继续探索。

Intelli IDEA 快捷键操作,咱来点不一样的相关推荐

  1. 怎样使用计算机操作,怎么使用键盘快捷键操作电脑

    使用快捷键的时候,可以使我们更好更快捷地使用自己的电脑,下面是学习啦小编为大家介绍键盘快捷键操作电脑的方法,欢迎大家阅读. 键盘快捷键操作电脑的方法 1.Fx F1:打开帮助 F2:如果你选中了一个文 ...

  2. 必须熟悉的vim快捷键操作

    转载请表明出处http://www.dabu.info/?p=801 Vim/Vi 没有菜单,只有命令 Vim/Vi 工作模式介绍: 插入模式 和  命令模式 是vi的两个基本模式. --插入模式 , ...

  3. python selenium模拟键盘_SELENIUM自动化模拟键盘快捷键操作实现解析

    这篇文章主要介绍了SELENIUM自动化模拟键盘快捷键操作实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 平常我们会用到很多快捷键,那么se ...

  4. Mac Terminal终端光标的快捷键操作

    2016年08月18日 18:26:06 阅读数:4217 Mac Terminal终端和linux上终端光标的快捷键操作是一样的,都是来自Emacs这个神级的编辑器,由于我以前vim用的多,没怎么用 ...

  5. eclipes 快捷键操作:

    快捷键操作: alt+/    代码提示 ctrl+alt+方向键上             向上复制 ctrl+alt+方向键下 向下复制 ctrl+/;ctrl+shift+c 单行注/取消注释 ...

  6. 如何做一个高级的文本编辑器 textarea,拥有快捷键操作

    如何做一个高级的文本编辑器 textarea,拥有快捷键操作 最近想做一个高级点的 textarea ,支持 JetBrains 系列软件的快捷键,比如: CTRL+ D 复制当前行. Tab 在前面 ...

  7. Allegro如何录制SCR快捷键操作指导

    Allegro如何录制SCR快捷键操作指导 Allegro可以录制SCR快捷键,里面记录了一些操作,类似一个插件,使用的时候可以直接调用,节省时间.下面介绍如何录制 选择file-Script 会出现 ...

  8. UltraEdit 快捷键操作

    http://hi.baidu.com/fjw722/blog/item/8b6370b438ec6e778bd4b244.html UltraEdit 快捷键操作 2008-01-15 11:41 ...

  9. R语言基本介绍 | 数据科学、Rstudio介绍、快捷键操作、R代码常见命令、数据类型、示例代码等等

    一.数据科学 数据科学:计算和统计技术的综合应用,用于解决一些真实世界中的问题. 计算:获得结果 统计:分析和建模 真实世界:机器学习.AI 数据科学Data Science = 统计+数据处理+机器 ...

最新文章

  1. 解决编译不通过Could not find support-compat.aar (com.android.support:support-compat:26.0.0).
  2. 电磁场与电磁波第四章 时变电磁场
  3. 网络短视频内容审核趋严!短视频不得未经授权剪辑影视剧
  4. 新晋千元王者!红米Note 8系列发布:999元起,价格真香
  5. kubernetes 日志定制查阅 - 排错 -- 好用的命令
  6. 人人商城数据字典---链接内容
  7. 【数字设计】诺瓦科技_笔试面试题目分享
  8. 照片审核处理工具_不需要Photoshop,这5款在线处理图片工具能帮你好好处理照片!...
  9. PPT 去除排练计时
  10. oracle wish as,虚拟语气:wish、if only和as if的用法
  11. c++构造函数的定义
  12. 淘宝开源深度学习端侧推理引擎 MNN
  13. 【Android】解决aab上传Google Play后下载语言文件缺失的问题
  14. 木纹标识lisp_Visual-LISP程序设计(第2版)第6章调试程序.ppt
  15. 安卓开发——拍照、裁剪并保存为头像报错:裁剪图片无法保存的
  16. outlook从服务器中恢复已删除项目,恢复邮箱中的已删除邮件:Exchange 2013 帮助 | Microsoft Docs...
  17. 机器学习之深度学习入门
  18. IOException parsing XML document from class path resource [applicationContent.xml]; nested exception
  19. 甲骨文公司将云层添加至其大型机VTL当中
  20. Tita绩效宝:通过组织透明度提高绩效

热门文章

  1. 浅析python中的main函数_浅的意思
  2. Spring(一)概述
  3. 元件库导入_最新版字体图标元件库分享,一套绝佳的矢量字体图标元件库
  4. Timeline的Animation Track详解
  5. (五)如何训练和测试AI语言翻译系统
  6. C# 用IrisSkin4.dll美化你的WinForm
  7. 使用Tensorflow Lite创建一个Android AI应用
  8. CSS从大图中抠取小图完整教程(background-position应用)【转】
  9. 要写related_name的两种情况
  10. sqlserver html文档,[SQLServer]从SQL中的一个表中导出HTML文件表格