扔掉鼠标,提高效率。 本文已被https://yourbatman.cn收录;女娲Knife-Initializr项目可公开访问;程序员专用网盘https://wangpan.yourbatman.cn;技术专栏源代码大本营:https://github.com/yourbatman/tech-column-learning;公号后台回复获得所有小而美的技术专栏
你好,我是
??前言
两月过去了,好久没见了,回来继续。
说到上一篇文章,可以追溯到2022-02-01春节:方向盘使用IDEA的60 和你分享一个快捷键,权力是为了提高效率(IDEA介绍导航篇)IDEA导航快捷键,熟练使用后可快速定位代码位置,从而提高工作效率。
本文继续,聊聊IDEA在和快捷键操作。
??所属专栏
- 【方向盘】-IntelliJ IDEA
??相关下载
- 本专栏源代码:https://github.com/yourbatman/FXP-java-ee
- 【技术专栏源代码大本营】https://github.com/yourbatman/tech-column-learning
- 【女娲Knife-Initializr访问地址:工程:http://152.136.106.14:8761
- 【程序员专用网盘】公益上线,注册发送1G超小容量,帮你练习:https://wangpan.yourbatman.cn
- 【Java开发软件包(Mac)】:https://wangpan.yourbatman.cn/s/rEH0 提取码:javakit
??版本约定
- Mac OS 12.4
- iTerm2 3.4.15(zsh 5.8)
- IntelliJ IDEA 2022.1.3
?正文
- 视窗(view):内容的载体
- 选择(selection):操作的目标
??IntelliJ IDEA快捷键
??视窗
视窗在图形界面中的重要性不言而喻。方便快捷地调出、隐藏和操作视窗也有助于提高效率。
根据自己的经验,笔者介绍了几种常用的视窗快速操作。
??最近打开的文件
Action Name | Key |
---|---|
Recent Files | command e |
文件:包括.java、.class、.properties等文件类型。 如果只想看文件,然后快捷键就够了(当然也可以用鼠标点击勾选):
??最近的位置
Action Name | Key |
---|---|
Recent Locations | command shift e |
上篇文章 回到快速回到上次编辑处的快捷键是command shift delete
。这个快捷键更厉害,可以显示最近的位置(光标经过哪里),可以辅助command shift delete
实现快速定位的目的: 同样,如果你只想看看你最近在哪里,再按一次快捷键。 说实话,作者并不经常使用这个快捷键,因为我个人习惯于使用前进和后退的方式,但有时我仍然会使用更多的弯曲。它可能对不同的人有不同的帮助效果,因人而异,自己捡起来。
??(偏好)设置
Action Name | Key |
---|---|
Preferences | command , |
IDEA设置项基本都在这个窗口 不用说,这个快捷键使用频率很高。而且,在Mac在操作系统中,软件(偏好)设置快捷键,(几乎)也不例外。
??打开/隐藏Project视窗
Action Name | Key |
---|---|
Project | command 1 |
要说IDEA哪个视窗最常用,除了编辑窗口,绝对是Project视窗了。 由于屏幕显示面积有限,我们经常需要隐藏/打开这个视窗,这显然属于,因此,特别适合用快捷键替换,提高开发效率。
至于其他视窗(如Maven视窗、Run视窗、Debug视窗),都有(或可有)对应的快捷键。根据自己的习惯需要,各取所需。
??显示/隐藏所有非编辑器窗口
Action Name | Key |
---|---|
Hide All Tool Windows | commond shift f12 |
首先得来个名词解释:什么叫?看图就明白了: 每个编辑窗口IDE最重要的窗口,包括查看内容、编辑等。其他窗口通常只是辅助的暂时性。
如上图所示,当打开的视窗较多,严重干扰了编辑窗口的显示面积时,该怎么办?
- 。编辑器视窗一行只能显示几十个字符,一共只能显示十几行,还能继续工作
- 。这就是常规思维,关掉不必要的,向编辑器视窗释放区域
- 。当目标非常明确时,使用此快捷键可以快速实现目标
说实话,作者使用快捷键的频率还是比较高的,因为不受干扰的沉浸式编程效率似乎确实高很多,不信可以试试。
??聚焦/返回编辑器
Action Name | Key |
---|---|
Focus Editor | esc |
当你习惯了键盘操作时,快捷键可以让回到编辑器。比如在。Project在视窗中查看项目时,可以使用此快捷键(将光标、焦点)快速返回编辑区域。
Tips:esc让焦点回到编辑器,语义别和
command shift delete
混淆
??选择
修改名称,批量修改,列出编辑,选择搜索项目…,这些都是开发过程中非常常见的需求。我们来看看。
??按行选择
以焦点/光标位置为起点,向上/下逐行选中。它的特点是:没有“感知”能力,不会有跳跃性,老老实实的按照行逐行选中。
说明:左右逐字选中,使用的是shift+←/→
🚩按模块选择
Action Name | Key |
---|---|
Extend Selection | option + ↑ |
Shrink Selection | option + ↓ |
相较于按行选择,它显得更“智能”:,感知到什么叫模块,然后可以一个模块的快速选中,不管多长都可一步到位,十分高效。
显然,这里需要补充一个小知识点,这里指的模块有哪些:
- 一条语句,如:instances.add(instance)
- 一个代码块:if(xxx) {xxx} 或者 try{xxx} catch(){xxx}等
- 一个方法:private void fun(){ xxx }
- …
这种感知选择的规则还蛮有意思:即保证了模块的层级性,又选中模块,好像能懂你一样,这也是强类型语言的魔力?
Tips:这里上下箭头不是存粹的代表方向,而代表了增/减量。比如,当没有选择任何模块时,按
option + ↓
是无效的,即使下面还有代码块也不会向下选中
🚩查找上/下一个
Action Name | Key |
---|---|
Find/Move to next Occurrence | command + g |
Find/Move to previous Occurrence | command + shift + g |
该快捷键的底层是common + f
,只不过它无调起查找窗口,使用起来更为便捷。毕竟文件内查找是非常常用的功能,所以IDEA提供了此便捷操作。而功能上,匹配的方式,完全由最的common + f
来决定。
比如上图中,笔者将common + f
功能限制为大小写敏感: 再次按command + g
会发现getKey中的Key
就不再会被选中了。
笔者使用该快捷键的频率很高,因为它比呼起查找窗口来得更方便快捷,而且能满足我大部分时候的查找要求,毕竟大部分情况下咱都是精确查找嘛。
🚩重复选择
重复选择下一个,重复选择所有。这个功能在批操作时超级超级超级好用~
和上面的功能区别:上面永远只会选中一个,而这里会选中多个,能进行批量编辑
Action Name | Key |
---|---|
Add Selection for Next Occurrence | control + g |
Unselect Occurrence | control + shift + g |
Select All Occurrence | control + command + g |
说明:该匹配规则为:文本,和common + f
无关。 三个光标,代表可以批量编辑喽。
control + g
会以第一个文本为基础,继续选择下一个(control + shift + g
是取消选择),如上图所示,可以非常方便的批量修改,即使它们不在同一列、处在不同地方、(有注释),可大大提高操作的效率。
同时,因为进入了“多光标”模式,也可以“批量移动光标”,再做你喜欢的操作。比较常见的operation有:在对应行的所有加/减内容。 tips:请注意此功能和rename
这种功能的定位区别,切忌混淆使用而导致写bug啦。
该功能有个典型的应用场景,举个例子,有如下一串内容:
为了节约篇幅,这里只例举10个数字,实际可能很长
10|
7|
68|
13|
18|
121|
25|
100056|
32|
100|
要求将上面纵向排列的数字内容,改为:
- 横向排列
- 数字之间改为使用逗号分隔(本来是使用
|
的嘛)
对于这个case,有了这个快捷键就变得相当容易了,操作步骤如下:
- 选中一个
|
符号 - 按
control + command + g
选中全部|
符号,就像这样: - 输入
,
替换掉|
- 使用快捷键回到(所有行)行首,按delete键,。大功告成:
10,7,68,13,18,121,25,100056,32,100,
一般来讲:对于上面这种简单文本的编辑笔者会使用sublime text,恰巧。看来,很多主流IDE的快捷键都是遵循“规范”的,开发者切换起来也够方便。
最后想强调一点:此快捷键虽好,请务必注意使用哦。此项操作属于操作,需特别注意选中编辑的范围,避免误伤。
🚩切换到列模式
列编辑模式,特殊场景特殊用处。
Action Name | Key |
---|---|
Column Selection Mode | commond + shift + 8 |
使用该快捷键进入列模式后,界面不会有任何变化。那如何知道当前处在列模式or not呢?看右下角: 若多出了它,就说明编辑窗口当前处在列模式下,拖动鼠标/方向键就是按列编辑。
注意:按esc是无法退出列模式的,退出方式是:再按一次
commond + shift + 8
一般来讲列模式只需要在某些瞬间开启就行,不需要长期存在。所以IDEA提供了一种快捷方式:,然后拖动光标,即可达到同样的列编辑的效果,优点比较明显:随用随走。
列编辑模式笔者使用的频率还是比较高的,比如一个非常非常典型的应用场景:批量修改访问修饰符: 该怎么快速完成所有属性访问修饰符protected -> private的修改,这里就不做说明了。留作作业,自己动手尝试一下?
🍞总结
本文继续介绍了IDEA 和相关的快捷键,希望在文本编辑、代码编辑的道路上能够帮助到你来提高开发效率。
还是补上那句话:快捷键没有任何技巧性,练就完了!下篇继续介绍Intellij IDEA的实用快捷键。那,咱们下篇再见!
推荐阅读
- 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(IDEA导航篇)
- 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(操作系统、终端篇)
- 【方向盘】超爱的IDEA提效神器Save Actions,卸载了
- 【方向盘】利用IDEA代码审查能力,来保证代码质量
- 【方向盘】是如何高效的使用IntelliJ IDEA
我是:前25年不会写Hallo World、早已毕业的。高中时期《梦幻西游》骨灰玩家,网瘾失足、清考、延期毕业、房产中介、保险销售、送外卖…是我不可抹灭的黑标签
- 🎓2013.07 清考、毕业答辩3次未通过、延期毕业
- 🏷2013.08-2014.07 宁夏中介公司卖二手房1年,毕业后第1份工作
- ️️🏷2014.07-2015.05 荆州/武汉,泰康人寿卖保险3月、饿了么送外卖2月,还有炸鸡排、直销等第2345份工作
- 🏷2015.08 开始从事Java开发,闯过外包,呆过大厂!擅长抽象思维,任基础架构团队负责人
- 🏷2021.08 因“双减政策”失业!历经9面,终获美团外卖L8的offer
- 🙅🏻♀️Java架构师、Spring开源贡献者、CSDN博客之星年度Top 10、领域建模专家、写作大赛1/2届评委
- 📚高质量代码、规范践行者;DDD领域驱动深度实践;即将出版书籍
《Spring奇淫巧技》
序号 | 专栏名称 | 简介 |
---|---|---|
01 | 【方向盘】-程序人生 | 程序人生,人生程序 |
02 | 【方向盘】-资讯/新特性 | IDEA、JDK、Spring技术栈…新特性 |
03 | 【方向盘】-IntelliJ IDEA | 熟练使用IDEA就相当拥有物理外挂,助你高效编码 |
04 | 【方向盘】-Bean Validation | 熟练掌握数据校验,减少90%的垃圾代码 |
05 | 【方向盘】-日期时间 | 帮你解决JDK Date、JSR 310日期/其实 的一切问题 |
06 | 【方向盘】-Spring类型转换 | Spring类型转换-框架设计的基石 |
07 | 【方向盘】-Spring static | static关键字在Spring里的应用 |
08 | 【方向盘】-Cors跨域 | 关于跨域请求问题,本专栏足矣 |
09 | 【方向盘】-Jackson | Almost Maybe是最好的Jackson专栏 |
10 | 【方向盘】-Spring配置类 | 专讲@Configuration配置类,你懂的 |
11 | 【方向盘】-Spring技术栈 | 暂无所属小分类的,Spring技术栈大分类 |
12 | 【方向盘】-JDK | 暂无所属小分类的,JDK技术栈大分类 |
13 | 【方向盘】-Servlet | Servlet规范、Web相关内容专题 |
14 | 【方向盘】-Java EE | 从Java EE到Jakarta EE,30年弹指一挥间 |
15 | 【方向盘】-工具/提效 | 开发工具、软件工具,目标是提效 |
16 | 【方向盘】-Spring技术栈新特性 | Spring Framework、Spring Boot、Spring Cloud、Spring其它技术 |
17 | 【方向盘】-基本功 | 每个Javaer,都需要有扎实的基本功 |
… | … | … |
99 | 大多数专栏均配有源代码,都在这里 |
- 源代码库地址:https://github.com/yourbatman/tech-column-learning
- CSDN主页:https://blog.csdn.net/f641385712
- 掘金主页:https://juejin.cn/user/430664289367192
- 博客园主页:https://www.cnblogs.com/yourbatman
- 个人博客主页:https://yourbatman.cn
- 个人网盘主页:https://wangpan.yourbatman.cn