本文已被 https://yourbatman.cn收录; 女娲Knife-Initializr工程可公开访问啦;程序员专用网盘 https://wangpan.yourbatman.cn;技术专栏源代码大本营: https://github.com/yourbatman/tech-column-learning;公号后台回复“ 专栏列表”获取全部小而美的 原创技术专栏
你好,这里是Java方向盘,我是方向盘(YourBatman),坐稳扶好,开始发车。
Title | Link |
---|---|
所属专栏 | 【方向盘】-IntelliJ IDEA |
源代码 | https://github.com/yourbatman/FXP-java-ee |
程序员专用网盘公益上线啦,注册送1G超小容量,帮你实践做减法 | https://wangpan.yourbatman.cn |
Java开发软件包(Mac) | https://wangpan.yourbatman.cn/s/rEH0 提取码:javakit |
女娲工程 | http://152.136.106.14:8761 |
版本约定 | [Mac OS 12.3],[iTerm2 3.4.15(zsh 5.8)],[IntelliJ IDEA 2021.3.3] |
📚前言
本系列上篇文章介绍了IDEA里关于Live Template&Postfix Completion功能,感受到了小小功能,大大能量。特别是笔者钟爱的Postfix Completion后缀补全功能,真的很好用,你也不妨一试。
终于,来到了IDEA快捷键系列的完结篇,从最初规划介绍60+个快捷键,到最后共计100个左右。自己吃了一惊,原来自己平时使用的快捷键竟有这么多(期间补充学了几个),难道这就是无意识的收获?
对于常用工具,我一直是快捷键的推崇者,也羡慕和崇拜那些快捷键玩得非常溜的人,比如IDEA,比如Sublime Text,比如VSCode、比如Vim等等。笔者心中一直有个非客观的观点:开发工具用得溜代码不一定写得好,但代码写得好开发工具一定用得不错。
什么是常用工具?行业不同答案也不一样,比如Java开发者、Python开发者、CAD设计者、视频创作者、财务工作者都有自己的“常用工具”
作为一名Java开发者,常用工具必然是它喽。
✍正文
作为完结篇,查漏补缺,将前面没介绍过的、遗漏的但又很常用的快捷键做补充介绍,尽量完整。
IntelliJ IDEA快捷键
✌Git快捷键
VCS:版本控制系统。IDEA支持三种不同的VC工具:
- Git:vc的事实标准,几乎所有项目都使用它进行版本管理
- Mercurial:操作上对开发者更友好一点的去中心化vc工具,但功能没git强大,市占率很小
- Subversion:“上古时代”的工具了,略
由于VCS几乎可以和git划等号,所以本文就直接以git为例了。
Tips:很多功能快捷键IDEA做了抽象,不管是哪种VC工具都是通用的,比如commit、push等
Commit
Action Name | Key |
---|---|
Commit... | command + k |
提交。键入此快捷键弹出提交对话框:
像这种对话框,操作上Mac系统会有些缺省行为,主流的软件都会支持。
- command + 回车:确定。这里是右下角蓝色的commit喽
- esc:退出。这里是右下角左边的cancel喽
Push
Action Name | Key |
---|---|
Push... | command + shift + k |
推到远程。键入此快捷键弹出push对话框:
Pull
Action Name | Key |
---|---|
Pull... | command + shift + control + p |
从远程pull到本地。键入此快捷键弹出pull对话框:
说明:此快捷键我个人绑定,IDEA默认无。
Fetch
Action Name | Key |
---|---|
Fetch | command + shift + control + f |
从远程fetch到本地。Fetch和Pull的区别:
Fetch:远程拉取到本地仓库,并不会自动合并或修改当前的工作(commitId不变)
- fetch更安全,在merge之前可以看清楚更新情况,再决定是否合并
Pull:远程拉取并merge到本地,会自动合并或修改当前的工作(commitId改变)
- pull相当于先fetch,然后执行merge(如果使用了--rebase参数,就相当于先fetch。再rebase)
键入此快捷键执行fetch直接拉取:
说明:此快捷键我个人绑定,IDEA默认无。
Update Project
Action Name | Key |
---|---|
Update Project | command + t |
更新(当前分支)工程。在IDEA上操作时,推荐使用此功能(快捷键),而不是pull or fetch。
update project不是Git的原生命令,是IDEA对Git的封装扩展。update project就是对fetch与fetch --rebase的封装。它的特点是:你可以选择是merge还是rebase:
当然也可以在偏好设置里设置好:
值得注意的是:update project会更新项目所有module,但是fetch/pull只会更新一个。
Stash和Shelve的区别?
当前代码修改还未完成,但是需要马上打包,或者切换分支,或者...,总之就是先不能要这些修改但又不能直接丢弃。这时可以先将修改暂存起来,搞定之后再恢复继续修改,很实用。
这两个功能都有类似作用,区别在于:
- Stash:存放。git的功能,只能将所有修改一起暂存,然后一起恢复
- Shelve:搁置。idea的功能,比较灵活,可以自由选择需要暂存的修改。这比Stash还强大
Rollback
Action Name | Key |
---|---|
Rollback... | command + option + z |
回退(放弃更改)。键入此快捷键弹出Rollback对话框:
VC对话框内快捷键
Action Name | Key |
---|---|
show diff | command + d |
jump to source | command + ↓ |
Previous Difference | f7 |
Next Difference | shift + f7 |
比较代码时的一些常用快捷键,实现对比、比较差异、跳转到源码(回到编辑区)。
✌Other快捷键
作为补充,继续介绍前面漏掉的一些使用快捷键。
首先是Project项目相关的,IDEA大都并未绑定快捷键,但笔者觉得非常非常实用,分享给你。
Open Recent
Action Name | Key |
---|---|
Open Recent | command + shift + control + e |
该快捷键“性价比”很高,使用起来会让你感受到一种高级感。
- 此功能挺常用,但IDEA缺省情况下并未给绑定快捷键
- 用鼠标操作路径较长,效率远没有快捷键高
使用方式为:按下command + shift + control + e
快捷键列出最近打开的项目,然后输入关键字检索即可。
Tips: IDEA处处可检索,只要你想要的地方都可检索,即使没有检索框(譬如这里本来没有检索框,但一输入文字检索框就自动出来了)
说明:此快捷键我个人绑定,IDEA默认无。
Open...
Action Name | Key |
---|---|
Open Recent | command + shift + control + o |
当Open Recent
里没有想要打开的项目时(最近打开的项目IDEA默认保存50个),这时就得用到Open...啦:从资源管理器里重新加载进来。
按下command + shift + control + o
快捷键,打开系统的资源管理器,找到对应项目加载进来。
说明:此快捷键我个人绑定,IDEA默认无。
New创建项目
Action Name | Key |
---|---|
Project... | command + shift + control + n |
Project from version control... | command + shift + control + v |
Module... | command + shift + control + m |
当我们需要打开的项目不存在时,就需要创建了。IDEA提供了Project和Module级的新建方式,如下图:
笔者给自己常用的三个新建都绑上了快捷键:
- Project...:新建项目
command + shift + control + n
说明:此快捷键我个人绑定,IDEA默认无。
- Project from version control...:从版本控制(一般是git)里克隆代码
command + shift + control + v
说明:此快捷键我个人绑定,IDEA默认无。
- Module...:新建模块
command + shift + control + v
说明:此快捷键我个人绑定,IDEA默认无。
对于xxx from existing sources笔者并没绑定快捷键,缘由是这类case相对较少,用鼠标操作即可。
Toggle Case
Action Name | Key |
---|---|
Toggle Case | command + shift + u |
切换大小写。此快捷键用于大写、小写之间互相切换。
Tips:大小写只针对英文字母,数字、符号、中文等字符保持原样
Parameter Info
Action Name | Key |
---|---|
View-Parameter Info | command + p |
查看方法参数(形参类型、个数、名称等),当方法入参比较复杂时(参数多、类型多),此快捷键非常实用。
在方法调用处的实参里,按下此快捷键,无需进入到方法内部即可看到“提示信息”,非常方便。
当有多个可选项时(方法重载),提示信息里会一并列出,供你选择:
Select File in Project View
Action Name | Key |
---|---|
Select File in Project View | command + control + p |
Select Opened File | command + control + p |
可以看到,这两个功能是同一个快捷键。因为它们的作用“相同”:将编辑区当前打开的文件和Project视窗光标所在文件定位为一致。也就是Project视窗里的这个按钮(按下此按钮or快捷键后,焦点离开编辑区回到Project视窗里):
这个快捷键在看代码、看源码时非常非常非常实用,不骗你,大大方便了阅读。
说明:此快捷键我个人绑定,IDEA默认无。
Copy Reference
Action Name | Key |
---|---|
Copy Reference | command + shift + option + c |
复制引用,拷贝引用。示例:
command + c拷贝:
CountryUtils
command + shift + option + c拷贝:
cn.yourbatman.bootdemo.country.CountryUtils
Copy Path/Reference
Action Name | Key |
---|---|
Copy Path/Reference | command + shift + control + c |
IDEA提供了非常丰富的复制功能,满足各种需要。当command + c
和command + shift + option + c
都还不能满足你的时候(比如写classpath路径时),试试此快捷键吧:
说明:此快捷键我个人绑定,IDEA默认无。
Move
Action Name | Key |
---|---|
Move... | f6 |
移动。包括移动文件以及文件夹。
将文件/文件夹移动位置是开发时很常见的功能,平时可能都用鼠标完成移动,效率其实也还不错。但当项目比较大,或者类比较多时,用鼠标操作着实不太方便且还易出错。其实IDEA为此动作提供了快捷键的:它可以实现精准控制,无视项目大小、类的多寡。例如:
移动文件
移动文件夹:
Quick Documentation
Action Name | Key |
---|---|
Quick Documentation | f1或control + j |
快速查看javadoc。可以在使用处快速查看类、方法的javadoc,很是。
查看类的javadoc:
查看方法的javadoc:
Explain/Collapse All
Action Name | Key |
---|---|
Explain All | command + + |
Collapse All | command + - |
展开,收起全部。这是一对通用快捷键,在所有视窗里有一致的表现。如:
Project视窗:
Maven视窗:
Git视窗:
说明:有些视窗里即使没有展开/收起的图标,你都可以用快捷键来实现对应功能。也就说鼠标没处点击,但快捷键却能实现,高不高级。
✌完结寄语
当你想推荐一样东西时,可以说出它的一百个好。但作为接收者,还是得理性看待,可观评断后再决定是否行动。
快捷键能不能提高效率?
能,这是一个公认的答案,没有异议。据统计,会快捷键的效率要比不会使用的的高,同样的工作相同的时间段,效率的差距能有2倍。
差距还是很明显的,所以笔者一直羡慕快捷键大神,也鼓励大家养成使用快捷键的习惯,慢慢的就会发现惊喜,不经意间就掌握了很多,提高了效率,上涨了薪水...
快捷键的重点在哪里?
各种快捷键满天飞,每个软件都有自己的快捷键,包括Windows、MacOS、Word、Excel、IDEA、Eclipse、Sublime Text、VSCode、Vim等等,如若每个都去学都去记忆,简直要命,很容易就放弃掉了。
笔者理解中“快捷键的重点”只有两个字:常用。快捷键的本质是提效,而只有常用方可提效,才有意义。不同行业的从业人员常用的软件各不相同,熟练使用自己领域内(相关软件)的快捷键就是抓住了重点。
寄语
学习是件反人类的事,也是件烧脑的事。但工作上要么费脑,要么费体力,就像能量守恒定律一样,躲不掉的。
任何改变都是有风险的,但不改变可能风险更大。基础不牢,地动山摇,理论、实践结合后,才能搭配好使用快捷键,形成组合拳。万丈高楼平地起,既然快捷键能提效,那就练吧。
✍总结
本文作为本系列的完结篇,介绍了Git相关快捷键,以及补充介绍了笔者自定义的一些和前面遗漏掉的常用快捷键。
写这个系列的初衷是真真切切的分享经验,毕竟IDEA全部快捷键有几百上千个,没有可能全部记住的。这时去看些快捷键大全显得有点盲目,难抓重点。因此笔者结合自己工作多年的经验,将自己的踩过的坑、使用经验共享出来,帮你做到有的放矢,这就是本系列的意义。
Tips:快捷键很多,不要期待一口吃胖。都是积累的过程~
最后,还是补上那句话:快捷键没有任何技巧性,练就完了!
推荐阅读
- 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(Live Template&Postfix Completion篇)
- 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(代码补全篇)
- 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(运行/调试篇)
- 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(视窗、选择篇)
- 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(IDEA导航篇)
- 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(操作系统、终端篇)
- 【方向盘】超爱的IDEA提效神器Save Actions,卸载了
- 【方向盘】利用IDEA代码审查能力,来保证代码质量
- 【方向盘】是如何高效的使用IntelliJ IDEA
我是方向盘(YourBatman):前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 | 源代码库 | 大多数专栏均配有源代码,都在这里 |