idea快捷键使用

整理了这篇文章,开发效率提升了30%。

psvm+Tab键:快速输出main方法

效果

public static void main(String[] args) {
}

sout+Tab键:快速输出System.out.println();

对象.sout+Tab键

"狗哥".sout + Tab键 -> System.out.println("狗哥");

任意对象.var+Tab键:快速声明对象

"".var+Tab键 -> String s = "";
new Object().var+Tab键 -> Object o = new Object();

任意布尔表达式.if+Tab键:快速输出if块

object1.equals(object2).if+Tab键

效果

if (object1.equals(object2)) {

}

任意布尔表达式.while+Tab键:快速输出while块

object1.equals(object2).while+Tab键

效果

while (object1.equals(object2)) {

}

fori+Tab键:快速输出for代码块

for (int i = 0; i < ; i++) {

}

Ctrl+Alter+T:代码包裹,很牛逼的功能

比如我们相对一段代码执行下面操作:

  • 使用 if 包裹

  • 使用 if / else 包裹

  • 使用 while 包裹

  • 使用 do / while

  • 使用 try / catch

  • 使用 try / finally包裹

  • 使用 try / catch / finally包裹

  • 使用 synchronized 包裹

  • 使用 {} 包裹

等等,都可以使用Ctrl+Alter+T来快速生成,选中需要包裹的代码,然后按上面的快捷键,如选中下面代码

String name = "程序员狗哥";

Ctrl+Alter+T,选择窗口中的try / catch / finally,最后效果

try {
    String name = "程序员狗哥";
} catch (Exception e) {
    e.printStackTrace();
} finally {
}

Ctrl+w:选择代码块,w可以按多次,可以连续选择

Ctrl+Shift+w:Ctrl+w反向操作

Ctrl+O:快速在当前类中生成需要重写父类的方法

比如想在当前类中重写父类中的一些方法,可以按这个快捷键,然后会列出所有可以重写的方法,然后选中一个,此时会快速在当前类中生成重写的代码

Ctrl+I:快速当前类中生成需要实现的接口中的方法

可以快速在实现类中生成接口中需要实现的方法。

Alter+Insert:用于快速生成一些代码

  • 快速生成构造方法

  • 快速生成get、set方法

  • 快速生成toString方法

  • 快速重新方法

javabean中比较常用,用来快速生成get、set方法。

Ctrl+Alter+L:快速格式化代码

当前文件中使用这个快捷键,会格式化当前类中所有代码;也可以选中一部分代码进行格式化。

Ctrl+Alter+O:优化当前类中导入的包

比如当前有一些无用的import,这个快捷键会将这些无用的清理掉

Ctrl+/:使用//注释代码

Ctrl+Shift+/:使用/**/注释代码

Ctrl+Shift+向下箭头:快速将一个代码块下移

比如像调整类中方法的顺序,选中方法名,然后使用这个快捷键,将方法整体下移。

Ctrl+Shift+向上箭头:快速将一个代码块上移

Alter+Shift+向上箭头:快速上移一行代码

Alter+Shift+向下箭头:快速下移一行代码

Ctrl+Shift+C:快速复制文件路径

选择下面这个类
com.alibaba.fastjson.JSON
按Ctrl+Shift+C
效果:
C:\maven\.m2\repository3.3.9_0\com\alibaba\fastjson\1.2.29\fastjson-1.2.29.jar!\com\alibaba\fastjson\JSON.class

Ctrl+Shift+Alt+C:快速复制引用

快速获取引用,如

在JSON类上按Ctrl+Shift+Alter+C,可以将类的全名com.alibaba.fastjson.JSON复制到剪切板

快速复制方法引用,如:

在JSON的parse方法上使用这个快捷键可以将下面信息复制到剪切板:
com.alibaba.fastjson.JSON#parse(java.lang.String, int)

Alter+Shift+Insert:列选择模式,同时编辑多行内容

比如我有个文件,内容如下:

分享各种好用的软件
分享各种使用的技巧
分享各种好用的开源项目

此时我想在每行前面加上程序员狗哥

可以按Alter+Shift+Insert进入多行编辑模式,然后点击鼠标左键拖拽鼠标,此时每行会加入光标,然后进行编辑。

再次按Alter+Shift+Insert可以退出当前模式。

Ctrl+Shift+J:将多行代码缩为一行

选中下面代码,使用Ctrl+Shift+J

String name = "狗哥";
int age = 30;
String address = "北京市";

效果如下,变为一行代码了

String name = "狗哥"; int age = 30; String address = "北京市";

Ctrl+D:快速复制行

快速复制单行,将光标放在下面代码上,按Ctrl+D

String name = "狗哥"; 

效果

String name = "狗哥"; 
String name = "狗哥"; 

快速复制多行,选中下面代码,按Ctrl+D

String name = "狗哥";
int age = 30;
String address = "北京市";

效果

String name = "狗哥";
int age = 30;
String address = "北京市";
String name = "狗哥";
int age = 30;
String address = "北京市";

选中代码+Tab键:将选中的代码快速缩进

选中

String name = "狗哥";
int age = 30;
String address = "北京市";

按Tab键,效果

    String name = "狗哥";
    int age = 30;
    String address = "北京市";

选中代码+Shift+Tab键:上面命令的反向操作

Ctrl+Shift+U:对代码切换大小写

选中下面代码

ABCDE

按Ctrl+Shift+U

abcde

再按Ctrl+Shift+U

ABCDE

Ctrl+Q:快速查看文档

快速查看类的文档,比如在Method类上,按Ctrl+Q,效果

快速查看方法文档,比如我想查看下面方法的文档信息

java.lang.reflect.Method.invoke

选中上面这个方面的名称,按Ctrl+Q,效果:

Ctrl+P:查看方法参数

下面是在forName0方法上,使用Ctrl+P产生的效果,可以看到这个参数的详细信息

Ctrl+Shift+P:快速查看一个表达式的类型

比如我想查看下面选中的这段代码,最后结果是什么类型的,对选中表达式按Ctrl+Shift+P

下面是效果,红框中显示了选中表达式的类型

Ctrl+E:查看最近访问的文件

按这个快捷键之后会弹出一个窗口,会列出最近访问的文件

多窗口查看文件

很牛逼的一个功能,看效果

下面的类上面点击鼠标右键,点击Split Vertically

效果,此时产生了2个窗口显示Class类

还可以继续开,下面来个垂直开多个窗口,点击下面的Split Horizontally,如下

效果,3个窗口了

Ctrl+N:当前项目中快速查找某个类

Ctrl+N+N:当前项目及所有jar包中查找类

Ctrl+Shift+N:当前项目中快速查找某个文件

Ctrl+Shift+N+N:当前项目及其他所有文件中查找某个文件

Ctrl+G:输入行号,快速跳转到某一行代码

Ctrl+B:跳转到声明处

跳转到变量声明处

有时候方法比较长,我想看某个变量在什么地方定义的,直接选中变量,然后按Ctrl+B,此时光标会跳到变量定义的地方。

如下,选中红框中的sb,然后按Ctrl+B

此时光标跳到下面这里了

跳转到类型的定义处

此时跳到StringBuilder中去了,如下:

跳转到方法定义处

如:

点击Ctrl+B,跳到下面这里了

Ctrl+U:快速导航到某个类的父类或者接口

Ctrl+Alt+B:快速导航到实现中去(2种常见用法)

快速导航到某个类或者接口的实现类中

如下面这个接口

有一个实现类

可以在IOrderService这个接口中,按Ctrl+Alt+B快捷键,直接跳到其实现类OrderServiceImpl中去。

快速导航到方法的实现上

下面的方法中按Ctrl+Alt+B

此时会跳到实现类中对应的方法中去,如下:

Ctrl+Shift+B:快速跳到定义类型声明中去

下面的toGe这个方法,返回值是String类型,在方法上使用Ctrl+Shift+B组合键,会跳转到String类中去

效果

下面这个sb变量是StringBuffer类型,在sb变量上使用Ctrl+Shift+B组合键,会跳转到StringBuffer类中去

效果

Ctrl+F12:查看文件结构(快速查看类的方法、成员变量)

快速定位到类中的方法,如查看String类中所有方法,String类中按Ctrl+F12,如下

Ctrl+Alt+F12:快速打开文件在磁盘中的位置

比如在String类中使用Ctrl+Alt+F12

点击src.zip

Ctrl+H:显示一个类型的层次结构

String类上使用这个快捷键,效果

Alt+F7:查看某个类或者方法被哪些地方使用了

查看某个方法被哪些地方使用了,这个功能够比较常用,方法上面使用Alt+F7,会列出当前方法被哪些地方调用了。

Shift+F6:快速重命名(对文件、类、变量快速重命名)

Ctrl+Alt+M:将一段代码抽取为方法

F6:快速将一个类移动到另外一个包中

快速将下面这个类移动到test2包中,选中这个类,按F6

下面输入需要移动的目标地址

移动完毕

F5:快速复制一个类

快速复制下面这个类,直接按F5,New Name中输入新的类名Demo2

下面产生了一个同样的类

Ctrl+Alt+Shift+T+7:将方法参数抽取到对象中

下面的insert方法,参数太多,此时想将这几个参数封装在UserDto对象中

public class UserService {
    public void insert(String name, String age, String salary, String job){
    }
}

选中方法,先使用Ctrl+Alt+Shift+T组合键,然后按7,弹出下面窗口,输入类名

方法的参数被抽取到下面的UserDto中了

insert方法变成下面这样了

Ctrl+Alt+V:抽取变量

下面代码,狗哥出现了4次,可以将其用一个变量来代替,选中任意一个狗哥,使用Ctrl+Alt+V

public void m1(){
    System.out.println("狗哥");
    System.out.println("狗哥");
    System.out.println("狗哥");
    System.out.println("狗哥");
}

 

代码变成了下面这样

public void m1(){
    String dog = "狗哥";
    System.out.println(dog);
    System.out.println(dog);
    System.out.println(dog);
    System.out.println(dog);
}

Ctrl+Alt+C:抽取常量

public void m1(){
    System.out.println("狗哥");
    System.out.println("狗哥");
    System.out.println("狗哥");
    System.out.println("狗哥");
}

上面代码使用Ctrl+Alt+C组合键,变成下面这样,

public static final String DOG_NAME = "狗哥";

public void m1() {
    System.out.println(DOG_NAME);
    System.out.println(DOG_NAME);
    System.out.println(DOG_NAME);
    System.out.println(DOG_NAME);
}

Ctrl+Alt+C:抽取方法参数

public void m1(){
    System.out.println("狗哥");
    System.out.println("狗哥");
    System.out.println("狗哥");
    System.out.println("狗哥");
}

上面代码使用Ctrl+Alt+C组合键,变成下面这样,狗哥变为了方法的参数

public void m1(String dogName){
    System.out.println(dogName);
    System.out.println(dogName);
    System.out.println(dogName);
    System.out.println(dogName);
}

Ctrl+Shift+T:快速给一个类生成单元测试

Ctrl+Shift+F12:当前窗口最大化

Alt+F1:可以将正在编辑的元素在各个面板中定位

使用ctrl+鼠标滚轮更改字体大小(缩放)

配置如下

效果,下面代码字体比较小,使用ctrl+鼠标滚轮试试效果

效果如下,随着滚轮的运动,字体变大/变小:

开启代码自动提示

配置如下

比如我输入hash,会出现下面效果,弹出一堆提示

显示行号

调试相关功能

添加断点:行号上面点击鼠标左键

点击下面的红圈

效果

F7:进入方法

调试的时候遇到方法体的时候会进入到方法体内部,每个方法依次执行

F8:一行行调试

调试的时候 遇到方法体不会进入方法内部  只会依次执行

F9:跳到下一个断点

调试的时候 只会执行 打断点的地方

Shift + F8:跳出当前方法

Alt + Shift + F7:强制进入方法

调试的过程中强制进入方法内部,这个和F7看起来有点相似,其实不一样的,F7只能进入当前项目中类的方法中,而当前这个更强大,可以进入任何方法内部。

条件断点

比如下面代码,只想在i为10的时候停下来

for (int i = 0; i < 50; i++) {
    System.out.println(i);
}

鼠标左键在行数上加上断点,在断点上右键加上条件,点击Done按钮

此时断点上面会有个问号

Alt+F8:调试过程中表达式求值

禁用断点

比如系统中有很多断点,此时不想删除,但是又不像让断点阻碍当前程序的执行,可以点击下面的按钮,会让所有断点都变灰失效

批量去掉断点

点击下面的按钮

弹出断点视图,可以对断点增删操作

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值