Intelli IDEA 快捷键操作,咱来点不一样的

Intelli IDEA 快捷键操作,咱来点不一样的_第1张图片

前言

本文并不打算简单罗列 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+/

Intelli IDEA 快捷键操作,咱来点不一样的_第2张图片

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 使用示例如下:

Intelli IDEA 快捷键操作,咱来点不一样的_第3张图片

image.png

Intelli IDEA 快捷键操作,咱来点不一样的_第4张图片

image.png

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

Intelli IDEA 快捷键操作,咱来点不一样的_第5张图片

image.png

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

Intelli IDEA 快捷键操作,咱来点不一样的_第6张图片

Statement Completion 完成代码

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

Intelli IDEA 快捷键操作,咱来点不一样的_第7张图片

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 快捷键操作,咱来点不一样的_第8张图片

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

Intelli IDEA 快捷键操作,咱来点不一样的_第9张图片

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

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

Intelli IDEA 快捷键操作,咱来点不一样的_第10张图片

image.png

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

Intelli IDEA 快捷键操作,咱来点不一样的_第11张图片

如何你是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 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 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 buildMap() {
        return Collections.emptyMap(); //Ctrl+Shift+空格
    }
}

操作后的代码:

操作步骤请参考注释

public class CodeCompletion {

    private String name="name";
    private String age="age";
    Map 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 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 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 中仅提供常用快捷键操作,正所谓:快捷无止境,劝君继续探索。

你可能感兴趣的:(【开发工具】)