狗哥是做java开发的,平时喜欢用idea作为开发工具,上次被技术总监小马哥吐槽了,说我是个菜逼。

狗哥下去之后研究了2周,整理了这篇文章,开发效率提升了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 }

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:调试过程中表达式求值

禁用断点

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

批量去掉断点

点击下面的按钮

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

感谢阅读,狗哥致力于为大家推荐各种好用、好玩的东西,也希望大家能支撑一下狗哥,帮忙转发一下,让更多好友一起成长!

idea多行编辑_开发神器idea被玩残了,你们功不可没啊!相关推荐

  1. excel首行固定_基金定投只有高手才能玩?不,你用Excel就可以品职Python小白入门课堂...

    只有大神能玩的量化? 相信很多学金融,或对金融感兴趣的读者都会觉得量化是一个非常高深.需要很深数学功底的领域.但事实上,尽管有很多量化模型应用到了一些十分高深的数学模型,量化离我们的生活并没有那么的遥 ...

  2. vscode用鼠标滚轮_前端开发神器 VSCode 使用总结

    前端开发神器 VSCode 使用总结 VSCode 是微软出品的,基于 Electron 和 TypeScript 的,集成了 git 版本管理和命令行终端,而且开源稳定,插件丰富,再搭配一款 Chr ...

  3. 智能化视频开发神器来了,AV Pipeline Kit 架构解析

    作者 | 宋慧 出品 | CSDN 在中国,93.4%的上网者都是网络视频.短视频的受众.随着宽带提速,5G 普及,用户对网络视频播放速度和清晰度需求水涨船高.AI 技术让音视频有了更多玩法,例如用户 ...

  4. 工具(6): 开发神器

    0x01 序章 收集7颗龙珠,召唤出神龙:"神龙,请给我一打开发神器!" 神龙:"给你:cnblogs.com/math/p/tools.html" 0x02 ...

  5. 推荐一款全能测试开发神器!1分钟快速上手!

    关注上方"测试开发技术",选择星标, 干货技术,第一时间送达! 1. 说一下背景 在日常开发或者测试工作中,经常会因为下游服务不可用或者不稳定时,通过工具或者技术手段去模拟一个HT ...

  6. 让人上瘾的新一代开发神器——Magic-API

    新一代低代码开发神器--Magic-API - 烤鸡计算机技术分享烤鸡计算机技术分享新一代低代码开发神器--Magic-APIhttps://roastchicken.cn/doc/magic-api ...

  7. webstorm+nodejs+JetBrains IDE Support+chrome打造前端开发神器

    #webstorm+nodejs+JetBrains IDE Support+chrome打造前端开发神器 -- 工欲善其事 必先利其器##各工具介绍 `webstorm`是**JetBrains** ...

  8. Stark 组件:快速开发神器 —— 锦上添花

    Stark 组件:快速开发神器 -- 锦上添花 一.分页 二.排序 三.搜索 1.关键字搜索 2.组合搜索 四.批量操作 经过前面几个篇章,我们的 Stark 组件已经能够批量生成 URL,快速实现增 ...

  9. Stark 组件:快速开发神器 —— 页面显示

    说道 Stark 你是不是不会想到他--Tony Stark,超级英雄钢铁侠,这也是我的偶像. 不过我们今天要开发的 Stark 组件,倒是跟他的人工智能助手 JARVIS 有些类似,是帮助我们快速开 ...

最新文章

  1. Ant Design使用方法
  2. Python编程专属骚技巧7
  3. CPU亲缘性及网卡中断绑定
  4. mysql 主键 最佳实践_设计套路:Mysql主键的选取
  5. iOS中Runtime简析
  6. viso 画背景框_手工界新宠:美绝了的浮雕画,揉揉捏捏一幅画
  7. 项目关键路径与项目最长路径有可能不同
  8. HTML5网页设计基础——播放器图标
  9. C# 按块选择 autoCAD二次开发
  10. UCI糖尿病数据利用逻辑回归算法进行训练和预测
  11. python 抽奖器_如何基于python实现年会抽奖工具
  12. Mac更新后ae不能打开,ae安装后打开报错解决方法
  13. 电脑不接扩展屏时,打开应用后,窗口跑到屏幕外,怎末办?
  14. 【ZYNQ】T9+控制板硬件概览与修复 (持续更新中)
  15. XMM SSE2浮点指令
  16. Codeforces Round #815 (Div. 2)
  17. 恢复被维金病毒感染的exe文件--我和病毒作斗争的3天
  18. C语言实战105例源码
  19. 按计算机病毒工作原理可将其分为,计算机基础知识练习题3.doc
  20. android模拟全局按键,Android 模拟按键汇总

热门文章

  1. SpringMVC工作总结001_SpringMVC拦截器(资源和权限管理)
  2. Android异常总结---3.Failed to install *.apk on device 'emulator-5554': timeout 错误提示:
  3. 2017年(毕业生)暑期实习信息汇总
  4. PHP错误提示的关闭方法详解
  5. linux c++模拟简易网络爬虫
  6. linux ftp使用相关
  7. VC中连接mdb数据库及其数据读取方法
  8. 微信小程序上传接口php,微信小程序API 上传、下载
  9. 随想录(动态库的特点)
  10. android 控件突然变小,android中自定义控件