Intellij IDEA 快捷键整理-鬼畜版(全键盘开发指南)
一 、何为鬼畜?
鬼畜一词在ACG爱好者中也代指通过影片(或音讯)剪辑,用频率极高的重复画面(或声音)组合而成的一段节奏配合音画同步率极高的一类影片,而这类鬼畜影片多见于NICONICO、AcFun和哔哩哔哩等ACG相关影片网站。(详见“鬼畜”。)
二、 如何让写代码也变得鬼畜起来?
在遥远的黑客时代,大概二十年前乃至更久远吧。那时候的程序员,有用打卡带的、有用终端机配合键盘的。那时候没有满满套路(CV大法),搞得项目乱糟糟。
现而今的代码开发。嗯!键盘配鼠标,圈圈点点,复制粘贴。欧啦!功能上线没有问题,万事大吉。
我碰见过朝我咆哮,“这问题我能解决,我就不在这里干的啦!”
还遇到过,“复制粘贴也是种本事,说那么多原理有什么用?”
其实一切都在一句话,“先满足功能,其他的以后再说。”
每个人都有自己的选择,干一行,爱一行。我喜欢编程,喜欢苦思问题瞬间得到结果的满足感。
只要放开鼠标,双脚离地了,病毒就关闭了,聪明的智商又占领高地了。尽情的开始复制粘贴吧。(这尼玛好low,有没有!)
总结起来就两点
- 放飞鼠标
- 唾弃复制&粘贴
三、 行动起来,步入正题!
既然要让编程操作回归键盘,那就要把键盘快捷键给熟悉起来。
Step 1 放飞鼠标
想要放飞鼠标,首先想想鼠标的主要作用都有哪些?
- 定位
- 选择
- 滚轮
1. 定位
在老式终端机的时代,银行柜员可以做到全键盘录入客户信息,期间不用瞧一眼屏幕。他是怎么做到的呢?
首先,当时的终端机,都是用 *Tab键* 来切换一个又一个输入框;
然后,银行柜员在熟记业务规则之后,只用记着按一次 *Tab键* 输入业务编号,再按一次 *Tab键* 输出储户账号,以此类推;
最后,导致了要新增什么输入项,开发人员只能在最后面添加,不敢在中间插入;
在前面提到的例子里,定位的关键就是 Tab键 。
PS:于是就有了按错 Tab键 将储户账号输入到了转账金额栏,一次转给储户20亿的新闻。http://finance.ifeng.com/a/20170118/15152965_0.shtml
PS:肯定有人问我,为什么只有windows,如果是mac系统,那么方便的触摸板跟鼠标,哪还用得着记忆这些快捷键。
| 描述 | 快捷键 | 介绍 |
|---|---|---|
| 行内定位 | Home | 跳到行首 |
| 行内定位 | End | 跳到行尾 |
| 行内定位 | Ctrl + ← | 光标跳转到当前单词 / 中文句的左侧开头位置 |
| 行内定位 | Ctrl + → | 光标跳转到当前单词 / 中文句的右侧开头位置 |
| 段内定位 | Ctrl + [ | 移动光标到当前所在代码的花括号开始位置 |
| 段内定位 | Ctrl + ] | 移动光标到当前所在代码的花括号结束位置 |
| 文档内定位 | Ctrl + G | 在当前文件跳转到指定行处 |
| 文档内定位 | Alt + ↑ | 当前光标跳转到当前文件的前一个方法名位置 |
| 文档内定位 | Alt + ↓ | 当前光标跳转到当前文件的后一个方法名位置 |
| 文档内查找定位 | Ctrl + F | 在当前文件进行文本查找 |
| 文档内查找定位 | F3 | 在查找模式下,定位到下一个匹配处 |
2. 选择
| 描述 | 快捷键 | 介绍 |
|---|---|---|
| 行内选择 | Ctrl + Shift + ← | 在代码文件上,光标跳转到当前单词 / 中文句的左侧开头位置,同时选中该单词 / 中文句 |
| 行内选择 | Ctrl + Shift + → | 在代码文件上,光标跳转到当前单词 / 中文句的右侧开头位置,同时选中该单词 / 中文句 |
| 段内选择 | Ctrl + W | 递进式选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展选中范围 |
| 段内选择 | Shift + ↑ | 在代码文件上,光标跳转到上一行 |
| 段内选择 | Shift + ↓ | 在代码文件上,光标跳转到下一行 |
| 文档内选择 | Ctrl + F12 | 弹出当前文件结构层,可以在弹出的层上直接输入,进行筛选 |
| 文档内选择 | ALT+ 7 | 显示当前文件结构层,可以在展开的选项卡上直接输入,进行筛选 |
| 文档内选择 | Ctrl + O | 选择可重写的方法 |
| 文档内选择 | Ctrl + I | 选择可继承的方法 |
| 文档选择 | Alt + ← | 切换当前已打开的窗口中的子视图,比如Debug窗口中有Output、Debugger等子视图,用此快捷键就可以在子视图中切换 |
| 文档选择 | Alt + → | 切换当前已打开的窗口中的子视图,比如Debug窗口中有Output、Debugger等子视图,用此快捷键就可以在子视图中切换 |
| 文档选择 | Ctrl + E | 根据输入的 类名 查找类文件 |
| 文档选择 | 连按两次Shift | 弹出 Search Everywhere 弹出层 |
3. 滚轮
| 描述 | 快捷键 | 介绍 |
|---|---|---|
| 段内 | Alt + ↑ | 当前光标跳转到当前文件的前一个方法名位置 |
| 段内 | Alt + ↓ | 当前光标跳转到当前文件的后一个方法名位置 |
| 文档内 | Ctrl + ↑ | 等效于鼠标滚轮向前效果 |
| 文档内 | Ctrl + ↓ | 等效于鼠标滚轮向后效果 |
| 描述 | 快捷键 | 介绍 |
|---|---|---|
| 段内 | Shift + F9 | 执行debug |
Step 2 唾弃复制&粘贴
仔细想来要唾弃复制粘贴,还是很难的。毕竟工作这些年来,不管是刚毕业的新生,还是毕业多年的项目经理,有着太多太多的例子爱好着复制&粘贴大法。当然这根团队氛围与整体水准有关,再此也不展开讨论了。
1. 设计
五大设计原则责任单一、开闭原则、里氏替换、接口隔离、依赖倒置,好像都没有针对复制粘贴的。
不过仔细想来,严格做到了责任单一跟依赖倒置以后,其实自然而然复制粘贴的问题就会好很多。但这其实是悖论,真一天到晚坚持复制粘贴的人,跟他提什么设计原则哟!对牛弹琴嘛。
绝大部分的复制粘贴,都是没有很好的做好封装。把不相干的逻辑做好隔离。
好吧,好吧!又绕回到了抽象封装上了,这些概念一提起来。很多人又会直接跳过了。
我发觉这是个大话题。要讲明白还是要写很多东西。推荐看看《effective java》
2. 重构
这里讲重构主要说说几个IDEA的快捷键功能。
| 快捷键 | 介绍 |
|---|---|
| Shift + F6 | 对文件 / 文件夹 / 参数 重命名 |
| Ctrl + Alt + L | 格式化代码,可以对当前文件和整个包目录使用 |
| Ctrl+Shift+M | 替换结构 |
还是深表遗憾,鼠标右键菜单栏中Refactor->
Replace Temp with Query...
Replace Constructor with Factory Method...
Replace Constructor with Builder...
这几个重构,还是挺好用的。在查找了keyMap之后,确实没有快捷键。
四、总结
文中充满了戏谑与嘲讽,只是给出了一些思路。感谢大家拍砖。
自己试行几天下来,发觉在查资料时。用到浏览器还是需要鼠标。哎。
无他,全键盘写代码手熟之后,倒是不用担心鼠标手了。右肩也没有那么酸疼了。
Intellij IDEA 快捷键整理-鬼畜版(全键盘开发指南)的更多相关文章
- Intellij IDEA 快捷键整理
CSDN 2016博客之星评选结果公布 [系列直播]算法与游戏实战技术 "我的2016"主题征文活动 Intellij IDEA 快捷键整理(TonyCody) ...
- IntelliJ IDEA 快捷键整理-from imooc
IntelliJ IDEA 快捷键整理-from imooc 学习了:https://www.imooc.com/learn/9241, main2, 100.for 3, new Date().so ...
- [转载]从MyEclipse到IntelliJ IDEA-让你摆脱鼠标,全键盘操作
从MyEclipse转战到IntelliJ IDEA的经历 注转载址:http://blog.csdn.net/luoweifu/article/details/13985835 我一个朋友写了一篇“ ...
- Intellij IDEA 快捷键整理(史上最全)
[常规] Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关 ...
- Intellij IDEA 快捷键整理(TonyCody)
[常规] Ctrl+Shift + Enter,语句完成 "!",否定完成,输入表达式时按 "!"键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更 ...
- (转)Intellij IDEA 快捷键整理
[常规] Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关 ...
- Intellij IDEA 快捷键整理(dyCopy)
原文:http://www.cnblogs.com/tonycody/p/3257601.html [常规] Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “! ...
- Intellij IDEA 快捷键整理(转)
Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关闭文件 C ...
- 从Myeclipse到IntelliJ IDEA-——让你摆脱鼠标,全键盘操作
注:本文是对原文章(https://blog.csdn.net/luoweifu/article/details/13985835)做的补充 快捷键对比 Myeclipse IDEA 说明 Ctrl+ ...
随机推荐
- c 中的单引号和双引号的使用
1. 在c中,'A' 表示的是一个 character constant ,表示的是字符集的数值:而 "A" 表示的是一个字符串常量,代表的是指向字符串的指针.
- 微擎框架下拉分页(使用js模板引擎)
1.需要分页的页面,引入一下文件 <script language="javascript" src="\addons\{$_GPC['m']}\template\ ...
- biopython
转载Part 2 Biopython的重头戏-生物学中序列的处理 Biopyhton的Seq和Python中标准字符串有两大重要的不同之处:首先,他们的处理方法不同.Seq适用于很多不同字符串的用的 ...
- azkaban编译以及安装(调度系统)
编译源码 下载azkaban源码 git clone https://github.com/azkaban/azkaban.git jdk要求是1.8以上版本 export JAVA_HOME=/ ...
- Java中构造函数传参数在基本数据类型和引用类型之间的区别
Java中构造函数传参数在基本数据类型和引用类型的区别 如果构造函数中穿的参数为基本数据类型,如果在函数中没有返回值,在调用的时候不会发生改变:而如果是引用类型,改变的是存储的位置,所有不管有没有返回 ...
- jQuery写省级联动列表,创造二维数组,以及如何存/调用二维数组中的数据
jQuery写省级联动列表,创造二维数组来存放数据,然后通过each来遍历调用,通过creatTxtNode创建文本节点,通过createElement创建标签option,在通过append将文本写 ...
- Multiple APK Support
[Multiple APK Support] Multiple APK support is a feature on Google Play that allows you to publish d ...
- SpringMVC点滴(1)
在使用springMVC很久,却一直没有总结其中的一些便捷配置和功能,恰好有空,加以总结 Servlet 3之后,在web.xml中加入async的支持,从而实现异步请求,需要在servlet和fil ...
- f5电源模块损坏
现象: ssh登录f5后有日志显示 现场确认f5 2槽电源指示灯不亮,且电源线正常.重新开关电源模块,拔插电源线后仍不亮.故确认是电源模块损坏. 处理:直接采购新的电源模块更换即可.f5电源支持热插拔 ...
- Hive和并行数据仓库的比较
最近分析和比较了Hive和并行数据仓库的架构,本文记下一些体会. Hive是架构在Hadoop MapReduce Framework之上的开源数据分析系统. Hive具有如下特点: 1. 数据以HD ...