一 、何为鬼畜?

鬼畜一词在ACG爱好者中也代指通过影片(或音讯)剪辑,用频率极高的重复画面(或声音)组合而成的一段节奏配合音画同步率极高的一类影片,而这类鬼畜影片多见于NICONICO、AcFun和哔哩哔哩等ACG相关影片网站。(详见“鬼畜”。)

二、 如何让写代码也变得鬼畜起来?

在遥远的黑客时代,大概二十年前乃至更久远吧。那时候的程序员,有用打卡带的、有用终端机配合键盘的。那时候没有满满套路(CV大法),搞得项目乱糟糟。

  1. 现而今的代码开发。嗯!键盘配鼠标,圈圈点点,复制粘贴。欧啦!功能上线没有问题,万事大吉。
  2. 我碰见过朝我咆哮,“这问题我能解决,我就不在这里干的啦!”
  3. 还遇到过,“复制粘贴也是种本事,说那么多原理有什么用?”
  4. 其实一切都在一句话,“先满足功能,其他的以后再说。”

每个人都有自己的选择,干一行,爱一行。我喜欢编程,喜欢苦思问题瞬间得到结果的满足感。

只要放开鼠标,双脚离地了,病毒就关闭了,聪明的智商又占领高地了。尽情的开始复制粘贴吧。(这尼玛好low,有没有!)

总结起来就两点

  1. 放飞鼠标
  2. 唾弃复制&粘贴

三、 行动起来,步入正题!

既然要让编程操作回归键盘,那就要把键盘快捷键给熟悉起来。

Step 1 放飞鼠标

想要放飞鼠标,首先想想鼠标的主要作用都有哪些?

  1. 定位
  2. 选择
  3. 滚轮

1. 定位

在老式终端机的时代,银行柜员可以做到全键盘录入客户信息,期间不用瞧一眼屏幕。他是怎么做到的呢?

  1. 首先,当时的终端机,都是用 *Tab键* 来切换一个又一个输入框;
  2. 然后,银行柜员在熟记业务规则之后,只用记着按一次 *Tab键* 输入业务编号,再按一次 *Tab键* 输出储户账号,以此类推;
  3. 最后,导致了要新增什么输入项,开发人员只能在最后面添加,不敢在中间插入;

在前面提到的例子里,定位的关键就是 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 替换结构
  1. 还是深表遗憾,鼠标右键菜单栏中Refactor->
  2. Replace Temp with Query...
  3. Replace Constructor with Factory Method...
  4. Replace Constructor with Builder...
  5. 这几个重构,还是挺好用的。在查找了keyMap之后,确实没有快捷键。

四、总结

文中充满了戏谑与嘲讽,只是给出了一些思路。感谢大家拍砖。

自己试行几天下来,发觉在查资料时。用到浏览器还是需要鼠标。哎。

无他,全键盘写代码手熟之后,倒是不用担心鼠标手了。右肩也没有那么酸疼了。

Intellij IDEA 快捷键整理-鬼畜版(全键盘开发指南)的更多相关文章

  1. Intellij IDEA 快捷键整理

    CSDN 2016博客之星评选结果公布      [系列直播]算法与游戏实战技术      "我的2016"主题征文活动 Intellij IDEA 快捷键整理(TonyCody) ...

  2. IntelliJ IDEA 快捷键整理-from imooc

    IntelliJ IDEA 快捷键整理-from imooc 学习了:https://www.imooc.com/learn/9241, main2, 100.for 3, new Date().so ...

  3. [转载]从MyEclipse到IntelliJ IDEA-让你摆脱鼠标,全键盘操作

    从MyEclipse转战到IntelliJ IDEA的经历 注转载址:http://blog.csdn.net/luoweifu/article/details/13985835 我一个朋友写了一篇“ ...

  4. Intellij IDEA 快捷键整理(史上最全)

    [常规] Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关 ...

  5. Intellij IDEA 快捷键整理(TonyCody)

    [常规] Ctrl+Shift + Enter,语句完成 "!",否定完成,输入表达式时按 "!"键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更 ...

  6. (转)Intellij IDEA 快捷键整理

    [常规] Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关 ...

  7. Intellij IDEA 快捷键整理(dyCopy)

    原文:http://www.cnblogs.com/tonycody/p/3257601.html   [常规] Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “! ...

  8. Intellij IDEA 快捷键整理(转)

    Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关闭文件 C ...

  9. 从Myeclipse到IntelliJ IDEA-——让你摆脱鼠标,全键盘操作

    注:本文是对原文章(https://blog.csdn.net/luoweifu/article/details/13985835)做的补充 快捷键对比 Myeclipse IDEA 说明 Ctrl+ ...

随机推荐

  1. 获取cookie

    1.cookie是存储在用户本地终端的数据,实际上是一小段的文本信息 2.cookie的作用 帮助web站点保存有关的访问者的信息,方便用户的访问,如记住用户名和密码,实现自动登录功能案例:查看访问我 ...

  2. document.all 在各浏览器中的支持不同

    转载:https://blog.csdn.net/fengweifree/article/details/16862495 感谢 all 方法最初是由 IE 浏览器拥有的,并不属于 W3C 规范范畴, ...

  3. rancher 2 安装 longhorn

    宿主机为centos 7 注意一定要安装open-iscsi yum install iscsi-initiator-utils 集群--默认命名空间--目录应用--longhorn 安装

  4. as3.0 橡皮功能2

    package com{ import flash.display.MovieClip; import flash.display.Bitmap; import flash.display.Bitma ...

  5. python基础入门学习简单程序练习

    1.简单的乘法程序 i = 256*256 print('The value of i is', i) 运行结果: The value of i is 65536 2.执行python脚本的两种方式 ...

  6. NumPy 从已有的数组创建数组

    NumPy 从已有的数组创建数组 本章节我们将学习如何从已有的数组创建数组. numpy.asarray numpy.asarray 类似 numpy.array,但 numpy.asarray 只有 ...

  7. 二维背包 hdu2159

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159 题目里面有两个限制条件,忍耐度和杀怪数量,所以可以用一个二维数组dp[i][j]来表示在消耗忍耐 ...

  8. const和volatile分析

    c语言中const修饰的变量是只读的,不能直接作为赋值号的左值,其本质还是变量:会占用内存空间:本质上const在编译器有用,运行时无用(还是可以通过指针改变它的值) ; int *p=&ab ...

  9. [剑指Offer]42-连续子数组的最大和(DP)

    题目链接 https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484?tpId=13&tqId=11183&t ...

  10. PHP百杂

    PHP实时生成并下载超大数据量的EXCEL文件 PHP错误和异常 PHP异常处理机制 我所理解的php缓冲机制及嵌套级别 $nick = 'test'; //简化输出 echo $nick?:''