扔掉鼠标,提高效率。
本文已被 https://yourbatman.cn收录; 女娲Knife-Initializr工程可公开访问啦;程序员专用网盘 https://wangpan.yourbatman.cn;技术专栏源代码大本营: https://github.com/yourbatman/tech-column-learning;公号后台回复“ 专栏列表”获取全部小而美的 原创技术专栏
你好,我是方向盘(YourBatman)。笔者的公号是保留地,只分享原创,不转载、不发商务广告!
✍前言
说到快捷键,对于程序员朋友一定都不陌生。哪些快捷键是你最常用的呢?没错,那必然是复制+粘贴快捷键。
大家好,我来敲代码了,ctrl+c再ctrl+v!
“CV大法”固然好,但其实快捷键的道路上不仅仅只有它,还有“诗和远方”呢。
每个操作系统、每个IDE、每个应用都有着非常多的快捷键(几十甚至几百个),足矣看到软件设计者们的重视吧。本文将本着分享的目的,以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.1
- iTerm2 3.4.14(zsh 5.8)
- IntelliJ IDEA 2021.3.1
✍正文
每个程序员都相信快捷键可以成倍提高效率,但只有少数人愿意为之。
笔者以自己为例,从操作系统层面、终端层面、IDE层面分享常用的快键键操作。申明:以下列出快捷键都是本人平时最常使用的,属于经验之谈而并非未经实战的文档性教程。
操作系统层面快捷键
以下快捷键以Mac OS为例。
✌ 通用快捷键
command是mac里最重要的组合键,以简写的cmd
代替。
这部分快捷键具有普适性:几乎在每个App里都有同样的行为。所以是最简单、最常用,当然也是最重要的。
快捷键 | 功能说明 |
---|---|
cmd + c | 复制/拷贝 |
cmd + v | 粘贴 |
cmd + x | 剪切 |
cmd + z | 撤销 |
cmd + shift + z |
取消撤销 |
cmd + n | 新建(文档、窗口等) |
cmd + o | 打开文件/文件夹 |
cmd + s | 保存 |
cmd + shift + s |
保存全部(标签页) |
cmd + a | 全选 |
cmd + q | 退出(当前正在使用的App) |
cmd + w |
关闭当前窗口/标签页(App并未退出) |
cmd + deleted | 删除文件(夹) |
cmd + t |
打开新标签页 |
cmd + i | 查看文件信息 |
cmd + f | 查找 |
cmd + h | 隐藏当前窗口(全屏下无效) |
cmd + m | 最小化当前窗口(全屏下无效) |
cmd + r | 刷新(页面) |
cmd + , | 打开偏好设置 |
cmd + 空格 |
打开聚焦搜索 |
✌ 场景快捷键
下面这些快捷键,在常见的一些场景里派上用场。
拖动顶部菜单栏图标顺序
你知道吗,Mac顶部菜单栏的图标顺序是可以拖动,自定义排序的。做法是:按住cmd键,使用鼠标移动
预览内容
这是Mac非常实用的功能:不用打开文件/文件夹,快速预览内容。这在看图、看文件时非常好用。用法为:选中文件/文件夹,单击“空格键”即可。
强制退出应用
在windows时,当软件卡死点击x无法关闭应用时,可以调起资源管理器,来进行强行关闭。
在Mac中也有类似的操作方式:强制退出。快键键是:cmd + option + esc
(这几个键左手单手很难完成,建议左手cmd+esc+右手option)
个人习惯建议:对于option这个组合键,一般都使用右手来触达比较方便些
文件重命名
Mac对文件的重命名非常方便,操作为:选中文件,按回车。
这里可能有些同学就不习惯了:按回车一般不都是打开文件/文件夹吗?
是的,这确实是和windows有点不一样的地方。在Mac里打开文件/文件夹是使用cmd + o
组合键来完成的。
✌ 神奇的option键
它在Mac里的作用挺神奇的,很多老粉称它为神奇、魔力键。
显示文件路径
和windows会在顶部实时显示当前路径不一样,Mac若想查看选中文件的完整路径,可以这么操作:选中文件,按下option键一小会,底部状态栏就可以看到该文件的全路径啦。
加强右键菜单
Mac的右键菜单看似没有Windows那样来得丰富,其实不然。比如:这是正常的右键菜单
按住option的右键菜单
查看ip地址
这是一个很常见的“需求”吧。有了option键我们就不必去ifconfig那么麻烦啦,直接按住option键点击wifi图标即可:
option键是个“神奇”的组合键,更多功能针对不同的App还可以自行发掘。总之,当你觉得某功能应该有,但是直接看又没看见的时候,那就试试option组合键吧,时常会发现惊喜哦!
✌ 超实用的文本快捷键
诚然,文字工作者(包括程序员)绝大部分情况下操作的都是文本内容,所以文本快捷键是最重要,必知必会的提效神器。
下面的快捷键几乎可以用于任何文本输入的地方,包括但不限于记事本、备忘录、IDE、终端、搜索框......
Home键和End键
用惯快捷键的小伙伴知道,这两个键非常好用,可以说不可或缺。
Home
:任意位置快速回到行头End
:任意位置快速回到行尾
不同于Windows,纵观Mac的键盘并未发现这两个按键:
难道如此智能的Mac系统不支持这种便捷操作?当然不是,它提供了组合键来达到同样的效果:
fn + ←
:效果同Home键fn + →
:效果同End键
所有的文本编辑场景(如txt、word、IDEA、搜索框、终端)里,这套组合快捷键都有Home/End的语义。但你或许可能会疑问:为何在浏览器里写文字时,有时候好使(如在输入框填写内容),有时候不好使(如在CSDN的编辑器里写文章),怎么回事???
不卖关子了,直接说根本原因:如果是在浏览器的输入框里(input、textarea等)编辑文本,这套组合键的语义是正确的,否则语义就变为了:
fn + ←
:回到页顶fn + →
:回到页尾
那么问题来了,为何在CSDN的编辑器里写文章(同样是编辑文本呀),怎么不好使呢?其实,本质原因是CSDN的md编辑器是用Html画出来的(这样才能显示图片、粗细、颜色嘛),而非输入组件:
这就很容易解释为何这看起来也是在浏览器里编辑文本,但fn那套组合键的语义变为了页顶/页尾了吧。
那么怎么破?难道在类似于CSDN的md编辑器这种情况就无法实现Home/End了?当然不是,这时候可以使用:
control + a
:效果同Home键control + e
:效果同End键
这组快捷键在文本编辑的大部分情况下和fn + ←/→
有着相同的语义,可以通用。对此,分享下我的个人习惯是:优先使用fn + ←/→
完成功能,只有它俩不好使了(比如CSDN编辑器下)才会采用control + a/e
替补。
说明:笔者喜欢使用fn + ←/→
的原因是可以配合shift键快速完成文本的选中,若使用control + a/e
的话就感觉不顺手
回到页顶和回到页尾
若页面很长,用鼠标/触摸板慢慢滚动显得效率过低,这时用这两个快捷键就更加得心应手了。
这组快捷键在浏览“大”网页时很常用,对应快捷键为:
cmd + ↑
:回到页顶cmd + ↓
:回到页尾
这组快捷键在浏览器里效果等价于(👆🏻已经说了在浏览器里它俩的效果了哈):
fn + ←
:回到页顶fn + →
:回到页尾
总而言之,建议优先使用cmd + ↑/↓
这组快捷键来表达语义。
其它
翻页快捷键:
fn + ↑
:相当于Page Upfn + ↓
:相当于Page Down
按行滚动快捷键:
control + p
:上一行(相当于↑)control + n
:下一行(相当于↓)
这哥俩用得很少,毕竟使用↑↓
方向键来得更直接。但在某些没有方向键的键盘里(如HHKC),这对组合键就非常有用喽。
“截断式”删除:
- control + k:光标所在位置的后面内容全部删除,相当于截断丢弃尾部一样
按单词(根据空格识别单词分隔)移动光标:
option + ←
:向左移动一个单词option + →
:向右移动一个单词
←/→
是一位一位的移动光标,Home/End是直接将光标干到头部/尾部,这是一块一慢的两个极端。然后,大多数时候我们只是需要在中间移动,但也希望能快一点移动,这个时候这组快捷键就非常好使啦,对提高移动效率的效果显著。
值得注意的是:只能按照单词移动。中文并不属于此行列,换句话讲:即使成千上万的中文字、中文符号都被认为是一个单词,直到遇上英文符号。因此该功能对于中文文字编辑者几乎没啥用武之地,但对于程序员真的非常非常好用!
终端层面快捷键
终端笔者使用的Iterm 2,shell使用的zsh。
上面介绍过的快捷键,在终端输入里很多都是同样的语义。但由于终端的特殊性,对某些组合键有特殊处理,所以还是有必要单独聊聊的。
✌ 移动光标
快捷键 | 功能说明 |
---|---|
control + b | 光标向左移动一个字符(相当于←) |
control + f | 光标向右移动一个字符(相当于→) |
esc + b |
光标向左移动一个单词 |
esc + f |
光标向右移动一个单词 |
b:back,回退;f:front,前进。可以看到,在终端里按单词移动,不能使用option组合键了哈。
✌ 删除字符
快捷键 | 功能说明 |
---|---|
control + h | 删除光标前的1个字符(效果同直接按delete) |
control + d | 删除光标后的1个字符。注:无任何字符时效果同exit |
control + k | 删除光标后所有字符 |
control + w | 删除光标前的一个单词 |
control + u | 删除所有字符 |
control + h
和control + d
使用←/→ + delete键可代替且语义更清晰些;control + u
和control + k
是最常用的。
✌ 其它
快捷键 | 功能说明 |
---|---|
control + L | 清屏(效果通clear或者cmd + r ) |
control + m | 执行(效果相当于回车) |
control + r | 查找之前使用过的指令 |
control + p | 上条指令(效果通↑) |
control + n | 下条指令(效果通↓) |
!number | 指定编号执行历史记录指令(如!10, !33) |
另外,Iterm自己有几个快捷键平时使用还比较多的:
快捷键 | 功能说明 |
---|---|
cmd + 回车 | 切换全屏 |
cmd + d | 垂直分屏 |
cmd + shift + d | 水平分屏 |
cmd + ; | 查看历史命令 |
cmd + shift + h | 查看剪贴板历史 |
✍总结
把快捷键三个字拆分开来有两部分含义:
- 快捷:方便触达,节省时间
- 键:使用键盘完成
任何东西并非越多越好,快捷键也是一样。当设置的/使用的快捷键非常的多,导致在使用的时候常常会想不起来使用哪个时,那么就失去了快捷的意义。为了使用而使用显然并非明智之举,一定要找到最适合自己的方式才是最好的。
使用快捷键提效没什么高深的技巧,就是先记忆,然后多使用,后者最为关键。用得多了,最终便能形成肌肉记忆,进而运用自如,方才大大提高工作效率。
最后说明一下,快捷键文章本计划用一篇分享的,但写完发现篇幅有点长,所以裁剪了一下:操作系统、终端篇;Intellij IDEA篇。那,咱们下篇再见!
本专栏上下文
推荐阅读
我是方向盘(YourBatman):一个前25年还不会写Hallo World、早已毕业的大龄程序员。网瘾失足、清考、延期毕业、房产中介、保险销售、送外卖...是我不可抹灭的黑标签
- 👉🏻2006 - 2009:高中时期为游戏《梦幻西游》骨灰玩家
- 🎓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届评委
- 📚将出版书籍
《Spring奇淫巧技》
,致力于很好、很具深度、很实用的专栏,为市场贡献微薄之力- 现在写纯粹技术专栏(公号后台回复专栏列表),不哗众取宠。如果你也有共鸣,可加我好友(fsx1056342982)一起进步
序号 | 专栏名称 | 简介 |
---|---|---|
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 | 【方向盘】-Spring Boot新特性 | Spring Boot中、大版本发布时的新特性系列专题 |
16 | 【方向盘】-Spring Framework新特性 | Spring Framework中、大版本发布时的新特性系列专题 |
17 | 【方向盘】-Spring Cloud新特性 | Spring Cloud中、大版本发布时的新特性系列专题 |
... | ... | ... |
99 | 源代码库 | 大多数专栏均配有源代码,都在这里 |