【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(IDEA导航篇)(上)

简介: 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(IDEA导航篇)(上)

✍前言


春节快乐,阖家幸福! 今天,你能阅读完这篇技术文吗?


上篇文章(【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(操作系统、终端篇))向jar人们介绍了笔者在操作系统、终端层面经常使用的一些快捷键,本文继续,上主菜:IntelliJ IDEA快捷键。


在Java开发者中,一直存在着很多鄙视链。如(前者bs后者):


  • IntelliJ IDEA → Eclipse → NetBeans
  • Unix → Linux → Mac OS→ Windows → DOS
  • Emacs → Vim → Sublime → Word → Power Point


就笔者自己来讲,算是一个IDEA快捷键重度依赖患者,一个在IDEA里不使用快捷键,几乎没法工作的选手。


版本约定

  • Mac OS 12.2
  • iTerm2 3.4.14(zsh 5.8)
  • IntelliJ IDEA 2021.3.2


✍正文


几乎每个软件或多或少都会有快捷键,由此来提高使用效率。几乎每个人都愿意相信快捷键是能够提高效率的,但常常还是一个鼠标走天下。


研发人员效率的最大障碍是什么

鼠标,鼠标,还是tm的鼠标。


诚然,鼠标是现代计算机不可或缺的外设。它极大程度降低了使用计算机的门槛,但作为各自领域的专业人士,追求效率应当:重(双手操作的)键盘,轻(单手操作的)鼠标。


本文将以IDEA为例,笔者分享自己在使用快捷键上的一些实战心得。


IDEA快捷键模板如何选择?


说明:每个软件的快捷键,(没有冲突的情况下)保持默认是最好的,十分不建议自定义


关于IDEA快捷键模板这块,笔者得承认自己是走了好几年“弯路”的,经验教训在这里分享出来。


如下图所示,这是笔者很长时间(2017-2021长达4年之久)使用的快捷键模板:基于Eclipse快捷键模板的私人定制版


image.png



下面对这两个“关键词”进行解释解释。


✌Eclipse快捷键模板


对于大多数新生代程序员(2016年之后入行)来讲,Eclipse大概率只听过但没用过,那值得恭喜:没有快捷键切换的包袱。


IntelliJ IDEA相较于Eclipse是后起之秀,早已成为JVM生态IDE领域绝对霸主。如下图所示(2021年统计的结果):JVM圈最受欢迎的IDE,IntelliJ IDEA可谓遥遥领先。


image.png



IDEA超越Eclipse有几个关键时间点,留个印象:


  • 2001年1月:首个IntelliJ IDEA版本正式发布
  • 2012年12月:IntelliJ IDEA支持炫黑主题。也是这一年,IntelliJ IDEA的综合表现实现了对老牌免费IDE Eclipse的超越,然后慢慢侵蚀着它的市占率
  • 2016年:这一年在市占率上,IntelliJ IDEA也完成了对Eclipse的超越。自此,IntelliJ IDEA来到舞台中央,成为JVM圈使用最广泛的IDE


奈何笔者入行较早,2015年8月就已入行(开始使用基于Eclipse的STS),2017年8月入职新公司才首次接触到IntelliJ IDEA。2年,你知道这2年我怎么过的吗?


这2年经过不断操练,Eclipse快捷键早已成为肌肉记忆,难以“摆脱”。


2017年入职新公司必须使用IntelliJ IDEA的时候,碍于工作压力,我毅然决定沿用Eclipse的快捷键习惯,该决定便是我走弯路的开始。


当初为何没有选择适应IntelliJ IDEA而选择沿用Eclipse的快捷键呢?这可能就是没有逃脱人性的弱点喽:舒适区。


回头想想,这是一个只看到短期收益而忽略了长期价值的决定,是不明智的。如果上天再给我一次机会,我觉得正确的做法是:短期内(比如半年内)先沿用Eclipse的快捷键方案以确保入职新公司后不会因为IDE问题而让开发效率打折扣,但之后(比如半年以后)对公司业务、人员比较熟悉后,能腾出时间了就一定要记得回归“正道”,全面拥抱变化。


笔者目前情况:已全部切回IntelliJ IDEA原生方式(默认的Mac OS快捷键模板),可喜可贺😄。


✌个人定制版


每个IDE都提供自定义快捷键的能力,IntelliJ IDEA自然也不例外。所以,我在这里又走了弯路:自定义了很多快捷键。


我自定义了不少快捷键,好处是:自个用起来更顺手。但缺点非常明显:在其它人电脑上,我就像个“盲人”。


自定义虽好,但也不要贪用哦。个人经验,若真需要DIY快捷键,那么:只做增加,不做修改,以保持和别人的最大公约数不会改变,自然也就拥有更好的“兼容性”。


说明:快捷键表面看起来是私有行为,但其实它的普适性也是非常重要的


IntelliJ IDEA快捷键


接下就是“正文”了,笔者将自己常用的一些快捷键分享出来,供你参考。按照功能大类,分别展开。


✌导航/查找物件


在我眼中,这部分最重要的。


查找的重要性不言而喻,如何能快速定位到自己想要的类、文件、地点,将能直接体现出对IDEA的熟练程度,自然也会节约你非常非常多的时间。


终极查找/导航


image.png


上来就放大招:终极导航。一般的快捷键是执行某个Action,而它是查找Action,只需知道Action Name就能通过它(间接)导航过去,并且还帮你显示了对应快捷键哦。


image.png


说实话,此快捷键笔者使用得并不多,毕竟通过它得经过2步才能“到达”目的地,但它对“新手”是很友好的,所以也推荐一下。


打开/查找类


image.png


IntelliJ IDEA里笔者认为最最最常用的快捷键,甚至没有之一。


image.png


command + o在整个操作系统层面都具有非常明确的语义,所有用户都知道不需要“教训”。该快捷键在IDEA里被定义为查找/打开类,足矣见得它的高频性和重要性。


其实,不仅仅是IDEA,IntelliJ旗下的其它IDE产品都赋予了command + o非常重要的语义,如:goland和DataGrip


image.png


Tips:这种查找方式只匹配类名/表名/go文件名,不关心里面的内容,所以检索速度非常非常非常快


小技巧


有时候需要打开某个二方、三方库里的某个类的源代码,使用command + o找对应的类可能找不到:如ArrayList


image.png



默认情况下command + o检索的scope范围是:Project Files(当前工程)。上图可以看到(当前工程)没有找到ArrayList,IDEA非常“智能”的告诉了你如何去做:将搜索范围改为All places。


说明:具有确定性的搜索结果能给予用户最好的使用体验,而并非检索出来一大推结果还需人工二次筛选,(无法盲操作)大大降低效率。确定性一般通过缩小检索范围 + AI人工智能推测来实现,IntelliJ IDEA就是这么做的,很高级


将搜索范围改为All places有两种做法:


  1. 使用鼠标点击选择:依旧没有脱离鼠标,不推荐

image.png


2.再按一次command + o:全键盘操作,推荐

通过command + o可以实现Project Files和All Places的自由切换,非常方便。


另外,还有一个查找小技巧是模糊搜索,也很常用。比如你在检索时是否遇到这种情况:


  • 不记得类的全名,只记得前面部分,或者中间部分,或者最后部分,甚至只记得零零碎碎的几个字母
  • 类名太长,不想全部输入(太慢)


举个栗子,要打开EntityManagerFactoryDependsOnPostProcessor这个类,我的做法是只在搜索框里这么输入就可以迅速打开我想要的:


image.png


说明:从Eclipse迁移过来的小伙伴喜欢使用*这列通配符去模糊匹配,在IntelliJ IDEA里就duck不必这么做了,因为它足够智能(当然你写*也是阔以的)。


使用误区


非常非常非常多同学在查找/打开类时有个使用误区:使用File in Files搜索一切,就像这样


image.png


对于这样的结果,你不觉得乱花渐欲迷人眼么?如果你也是这么做的,那么从看到笔者这篇文章开始就默默的改正哈。


问题来了,这两种检索有什么区别呢?


  • Go to Class…:有且仅检索类名,所以内部类也是可以被非常快速检索到的
  • 注意:不是文件名,而是类名。只是单文件单类在99.9999%情况下名称都相同而已,所以不要有误解哈
  • Find in Files:用于检索文件的内容。当你需要关心文件内容的时候(如配置key的名称、字符串内容等)就使用它


总结:如若你现在还使用Find in Files来进行打开类的话,会发现可能90%都是干扰项,觉得还能提高效率嘛?那你还会继续使用吗?


打开/查找文件


image.png


它用于根据文件名查找/打开文件。


image.png


可以看到,它会将文件的后缀名也显示出来。理由很简单:它检索的是文件,文件,文件(后缀名不一样就是不同文件)。


我再“变个戏法”以加深理解


image.png


可以看到,“同样名称”的.java和.class文件都被搜到了,这就是查找文件的“强大之处”。


一般来讲,shift功能键是同类功能做加强,这里应该能体会到吧


笔者眼中的最佳实践:找类用command + o,而command + shift + o专用来找配置文件(当前project或者lib包内)、普通文件。


打开/查找符号


image.png



理解这个快捷键的关键,在于理解什么叫Symbol(符号),笔者根据自己的使用经验,尝试帮你总结一下,包括:

  • Class类
  • 方法名
  • 在Spring容器里的Bean名称
  • 枚举项
  • 全局(静态)属性名
  • 成员(静态)属性名
  • Rest URI路径


image.png


image.png


非常“强悍”有木有,总而言之,能够成为类的一部分的都可以通过它找到,这得益于Java强类型、静态语言的特性,用好了可大大提效,谁还说Java语言编程没有脚本语言快呢?


Tips:这个检索的内容虽然多,但速度也还是非常快的。道理很简单:结构化的元素找起来就是快。


相关文章
idea快捷键:全局搜索文件,代码,接口,ctrl+shift+f无效?也可以点击Edit 点击Find Replace in path
idea快捷键:全局搜索文件,代码,接口,ctrl+shift+f无效?也可以点击Edit 点击Find Replace in path
idea使用构造函数的快捷键是什么?alt + insert
idea使用构造函数的快捷键是什么?alt + insert
|
1月前
|
IDE Java 项目管理
Java入门——Intellij IDEA简介、使用IDEA开发程序、IDEA常用快捷键、IDEA其他操作
Java入门——Intellij IDEA简介、使用IDEA开发程序、IDEA常用快捷键、IDEA其他操作
23 3
idea打开命令窗口的快捷键,使包分开的写法
idea打开命令窗口的快捷键,使包分开的写法
|
17天前
IntellJ IDEA的常用快捷键和基础配置
IntellJ IDEA的常用快捷键和基础配置
17 0
|
19天前
|
Java
【随手记】idea常用快捷键(持续更新)
【随手记】idea常用快捷键(持续更新)
14 0
|
2月前
IDEA必备快捷键
IDEA必备快捷键
37 0
|
24天前
|
Java 编译器 Maven
使用intellij idea搭建SSM架构的maven项目 详细
使用intellij idea搭建SSM架构的maven项目 详细
42 4
|
3天前
|
IDE Oracle Java
day4:JDK、IntelliJ IDEA的安装和环境变量配置
【7月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
10 0
|
6天前
|
网络协议 安全 Linux
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
9 2