如果你是首次接触IDEA建议先看IDEA萌新快速入手教程

高效定位代码

无处不在的跳转

在编码过程中我们在多窗口之间进行跳转都是使用鼠标点击窗口进行跳转,效率十分低下,使用快捷键进行跳转更加便捷哦~

项目之间的跳转

顾名思义,有时候我们会打开多个窗口进行开发,然后在多个window之间进行切换编码。

强大如IDEA,提供了如下快捷键进行window之间的跳转。Ctrl+Alt+[Ctrl+Alt+]

文件之间的跳转

使用快捷键Ctrl+E查看近期打开的文件,使用方向键选择近期打开的文件进行跳转。

如果我们只想在近期修改过的文件中跳转注意上面的Show changed only选项,再次按下Ctrl+E勾选上即可过滤出近期修改过的文件。

编辑位置之间的跳转

有时我们在多个文件之间进行编码操作(比如Dao,Service,Controller层之间)需要快速跳转至上一次编辑位置,使用Ctrl+Shift+BackSpace跳转至上次编辑位置(Last Edit Location)。跳转至下次编辑位置为Next Edit Location,我这居然没快捷键,所以大家自己查看一下。

浏览位置之间的跳转

浏览位置和编辑位置不一样,浏览位置为光标停留位置,我们可以在各个浏览位置之间迅速跳转,这在阅读源码时特别有帮助。跳转至上一浏览位置Ctrl+Alt+←,跳转至下一浏览位置Ctrl+Alt+→

书签之间的跳转

使用Ctrl+F11调出书签栏,选择喜欢的标签即可(还是按照顺序来选吧),使用Ctrl+标签即能迅速的跳转至书签位置。有限像红色警戒游戏中为部队进行编号的意思呀_

当然,我们也可以直接使用Ctrl+Shift+标签迅速打上(取消)书签。

编辑区和文件区

IDEA界面分为编辑区和文件区,如图所示。注意文件区中的数字(如1:project),使用Alt+数字即可跳转至对应的文件区,使用Esc即可返回原来位置。

精准搜索

搜索类

使用Ctrl+N可快速查找项目中的类。

注意上面红框处,如果我们需要查找jar包中的类,则需要勾选上,再次按下Ctrl+N即可勾选上。

搜索文件

使用Ctrl+Shift+N迅速查找项目中的文件。

搜索符号

符号(Symbol)在IDEA中代表着函数或属性,我们使用Ctrl+Alt+Shift+N查找相应的符号。

搜索字符串

当我们需要查找字符串时使用上面的所有查找都无用了,需要使用Find Path进行查找,对应快捷键为Ctrl+Shift+F

可以看到我们可以通过勾选不同的选项进行不一样的查找,比如设置查找的文件范围等。

高效编码

列操作

public enum Code {100:"CONTINUE"101:"SWITCHINGPROTOCOLS"200:"OK"201:"CREATED"    202:"ACCEPTED"public int code;Code(int code){this.code = code;}}

如上这段代码,我们现在需要将诸如100:"CONTINUE"这些写成枚举,不懂IDEA列操作我们只能一个个的去修改,很费时间,如果使用列操作将十分快捷,如动图所示。

在讲解这个操作中我们需要了解几个快捷键:

  1. 选中一个单词,Ctrl+Shift+→
  2. 选中光标到行尾的内容,Shift+End
  3. 光标跳转至行首,Home
  4. 光标出现在所有相同内容的行,Ctrl+Alt+Shift+j

记住这四个快捷键我们就可以进行列操作了,首先将光标移至第一个:前,使用Ctrl+Shift+→选中这个冒号,再使用Ctrl+Alt+Shift+j使光标出现在所有有冒号的行,此时将光标移动至字符串前,使用Ctrl+Shift+→选中字符串,剪切, 光标跳转至行首粘贴,左括号,跳转至数字后,右括号,选中光标至行尾的内容,逗号,Esc退出光标多行,将最后一个逗号修改为分号。

live template

很多时候我们需要写一些固定格式的代码,比如public static final String,我们可以借助live template设置自己的模板迅速完成这些代码的编写。如下图所示,我们只需要输入psfs即可快速编写出public static final String。我们可以自定义许多模板加快我们的开发。

postfix

在使用postfix前我们需要确保开启了postfix

在编码过程中经常使用for循环,借助postfix我们可以释放快速的完成for循环的编写。如下图即可迅速生成for (int i = 0; i < 100; i++) {}。下面我们将介绍一些常用的postfix。此部分内容为转载,来自公众号Java葵花宝典

var 声明

null 判空

notnull 判非空

nn 判非空

for 遍历

fori 带索引的遍历

not 取反

if 条件判断

cast 强转

return 返回值

Alt+Enter

自动创建函数

list replace

List<Integer> list = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {Integer integer = list.get(i);//do something
}

如上这段代码对列表继续遍历操作。我们使用alt+enter将其快速转换为foreach形式。使用Alt+Enter我们可以快速的对代码进行重构。

字符串format

如果我们打印多个变量时我们使用加号将多个变量连接起来打印,使用Alt+Enter我们可以将其转换为format格式。

字符串build

字符串的连接推荐使用StringBuilder完成,而不是使用加号。

导包

如果IDEA没有自动导包我们需要手动进行导入,在需要导入的类名上使用Alt+Enter选中合适的包进行导入。

断点调试

快捷键 功能描述
F8 单步调试,不进入函数内部
F7 单步调试,进入函数内部
Shift+F7 选择要进入的函数
Shift+F8 跳出函数
Alt+F9 运行到光标处
Alt+F8 执行表达式查看结果
F9 继续执行,进入下一个断点或执行完程序
Ctrl+F8 设置/取消当前行断点
Ctrl+Shift+F8 查看断点

### 禁止所有断点       开启箭头所指选项我们可以禁止所有的断点。 ![请输入图片描述][33]

条件断点

我们可以为断点设置某一条件,当且仅当满足该条件时此断点才生效。使用Ctrl+Shift+F8查看断点,在Condition中设置条件。

阅读源码

查看类的大纲

当我们查看源码时首先需要掌握的就是该类有哪些方法,哪些变量,我们不需要慢慢滚动鼠标去查看,使用快捷键Ctrl+F12即可快速查看类的大纲。

查看类图

使用快捷键Ctrl+Alt+Shift+U查看当前类的UML类图。

查看类继承层次

有时候我们需要查看继承此类或者实现此接口的类还有哪些,使用Ctrl+H即可查看全部子类。

谁调的我,我调的谁

public class test2 {public static void main(String[] args) {fun1();}public static void fun1(){fun2();fun3();}public static void fun2(){fun3();}public static void fun3(){System.out.println("fun3...");}
}

如上所示代码十分简单,通过它我向大家演示方法的调用层次,光标置于方法上,使用快捷键Ctrl+Alt+H,注意两个红框所示,通过切换这两个选项我们即可了解方法的调用层次。

查看谁调用fun2()

查看fun1()调用了谁:

IDEA奇YIN巧技相关推荐

  1. 开发奇淫巧技Tips(Android篇)

    没事会记录下开发的奇淫巧技,每个tips前都会标明开发语言,有更多更好的奇淫巧技可以发评论或者私聊,可以添加进来 1.Kotlin:View调用此方法传入url加载网络图片,如果是ImageView则 ...

  2. 多行文本注视 php,多行文本进行截断的奇淫巧技

    本篇文章给大家带来的内容是关于多行文本进行截断的奇淫巧技,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 单行文字的截断非常简单,但是多行文字的截断可谓是非常头疼,刚学css时候就为了 ...

  3. asa防火墙升级固件_奇淫巧技 | 在路由器中添加策略,阻止电视系统升级

    上一篇文章「长虹智能电视刷机降级,实现U盘安装第三方应用」中提到系统升级后会出现无法随意安装第三方应用的情况,当完成刷机后为了避免系统自动更新,你需要通过路由器阻止系统更新. 用openwrt类路由器 ...

  4. idea new对象后自动补全_IDEA的quot;奇淫巧技quot;

    本期吉大浪潮俱乐部给大家带来了IDEA的快捷键用法总结.废话不多说,让我们赶紧开始吧!!! IDEA的奇淫巧技 前言 奇淫巧技是第一生产力 -鲁迅 玩笑归玩笑,掌握IDEA的常用功能,不仅能提高开发效 ...

  5. [asp.net mvc 奇淫巧技] 04 - 你真的会用Action的模型绑定吗?

    在QQ群或者一些程序的交流平台,经常会有人问:我怎么传一个数组在Action中接收.我传的数组为什么Action的model中接收不到.或者我在ajax的data中设置了一些数组,为什么后台还是接收不 ...

  6. 奇淫巧技的KMP算法--详解

    奇淫巧技的KMP算法–详解 花了一下午时间,看了十几个博客,终于拿下了KMP高地,现在总结下下自己对KMP的理解和实现. 情景1 假如你是一名生物学家,现在,你的面前有两段 DNA 序列 S 和 T, ...

  7. 源码解析中看到的奇淫巧技

    源码解析中看到的奇淫巧技 一. 数组重置 let arr = [123,123] arr.length // 2 arr.length = 0 arr // [] 当我们给数组的length 属性设置 ...

  8. [asp.net mvc 奇淫巧技] 05

    一.需求: 在web开发中,经常会处理javascript的一些问题,其中就包括js的压缩,合并,发布版本以及混淆加密等等问题.在asp.net 开发中我们使用ScriptBundle已经可以解决ja ...

  9. 【C#冷知识系列】(一)那些你知道或者不知道的奇淫巧技

    引子 正如我在个人介绍中所写,我是一个仍然坚持.NET的头铁高级软件工程师,研究C#,.NET已经六年多,一直坚持认为自己的能力不足以教授别人,所以一直没有想法写博客.工作几年,内容涵盖了.NET框架 ...

最新文章

  1. 获取数组第N个元素的方法
  2. href=#与href=javascriptvoid(0)的区别
  3. 玩转控件:封装Dev的LabelControl和TextEdit
  4. mysql 中 and和or 一起使用和之间的优先级
  5. 锐捷ap怎么设置_新房装修网络布线方案一:AC+AP模式,弱电箱只放光猫和集成AC...
  6. jtessboxeditorfx 界面显示不出来_不需要发酵,自制家庭版健康小油条,不会失败的配方...
  7. Java写file文件上传,在线预览思路
  8. 与程序员相关的CPU缓存知识
  9. 刚安装3dsmax2020无法保存文件或注册机无法patch
  10. Eclipse中打开文件时单击和双击的设置
  11. vmware-vmx.exe无法结束进程
  12. swift和swiftui_SwiftUI和UIStackflow问题
  13. app后端开发四:GeoHash实现查找附近的X
  14. 批量处理ios破解后的资源文件为android所用
  15. SAE上使用cron定时发微博
  16. 蓝桥杯--历届真题 最优包含【第十届】【决赛】【B组】
  17. 如何利用Maven查找依赖信息
  18. [Vue]非父子组件传值(bus/总线/观察者模式/发布订阅模式)
  19. java集合练习题十六个国家随机分为四组
  20. STM32单片机—编码器测速

热门文章

  1. WWDC 2014 发布会 Keynote 视频下载 3.6G 1080P地址
  2. 移动相关术语:MSISDN
  3. flash动画学习指南八:动画编辑器
  4. 互联网大资本是如何剥削你的?
  5. 北大青鸟accp培训 :ACCP学员学习心得体会
  6. 正则校验1-65535整数
  7. 计算机音乐单恋一枝花,单恋一枝花-张宇
  8. 联想笔记本e480恢复出厂设置_联想ThinkPad E480笔记本win10怎么改win7
  9. 38款 流媒体服务器开源软件
  10. 介绍Jackson JsonNode和ObjectNode