如何提高程序员的键盘使用效率
古人有云:工欲善其事,必先利其器。作为一名候补程序员,我们在平常的工作学习中接触最多的莫过于键盘了,键盘就成了我们在网络世界“大杀四方”的武器。
那么,为了不在网络战场上当可耻的“逃兵”,我们需要为成为一名合格的程序员准备哪些必备的技能呢?
键盘输入速度
天下键盘功,唯快不破。当然前提是得保证正确率。
记得小时候在微机课上练习打字还是挺有趣的,最常用的就是金山打字小游戏:你在键盘上输入荷叶上的单词,然后让青蛙过河。
既能够锻炼你的打字能力,又能够认识一些单词(事实上最后也没记住几个),再加上创作者能够把游戏和学习相结合,那打字速度可真是进步飞快。
但好景不长,微机课被各科老师轮流霸占,微机老师都差点失业。再加上那时候家里又没有电脑,刚刚才训练起来的打字速度就这样荒废了。
等到上大学的时候,我的第一节课就是计算机基础课,老师上来就要求,先来测试以下你们的打字速度如何。无奈的我拿出我修炼多年的二指禅法,眼神记忆住单词,口中念念有词,两根手指敲击键盘打出字符。对于我的“精巧技艺”,我邻座的同学自然也都毫不客气地笑出了声。
那打字咱还是得练啊,毕竟老师要求打字速度不低于100cpm。学习了打字正确手势之后,然后就是枯燥又有成就感的练习了。一个星期的练习,终于让我改掉了伴我多年的二指禅,打字速度也提升到了100cpm(刚好达标)。然后我刚刚找到以前用的指法练习的软件(百度云链接:https://pan.baidu.com/s/1lSrCOZc7QySmcTydhwYZdw; 提取码:uqce),又试着测试了一下我练习了上百遍的那篇文章,嗯,果然这几年的代码没白敲。
快捷键
前面说的键盘打字速度那是每一个电脑使用者所应该掌握的基础技巧。而这一章的快捷键那可就高大上多了,不经意间露一手程序切换(Win + tap),恐怕立马就能够让邻座同学流露出崇拜的表情。
游戏玩家掌握了快捷键,可以在瞬息百变的对战中提高生存的机会;而Windows玩家掌握了快捷键,不但可以提高电脑操作速度,更能享受到初级玩家望着你那仰慕的眼神。
当然,这些也只是掌握快捷键的其中一种收获,作为程序员我们学习快捷键的最主要目的还是效率。
由于经济条件的原因,大多数人还是在windows操作系统下工作,那么下面介绍一些我在win10中比较常用的快捷键。
1. Ctrl+Shift+N:要在Win10的“资源管理器”中新建一个文件夹,最传统、常规的方式莫过于打开相应分区下的目录,然后右键点击空白处,选择“新建”→“文件夹”。
不过,利用快捷键操作会更简单:打开想要新建文件夹的分区或者目录,直接按下“Ctrl+Shift+N”,一个“新建文件夹”就出现了——你所要做的只是将它改成一个适合的名字而已。
2. Win+Tab:Windows下,一直有个很方便的窗口切换快捷键“Alt+Tab”,按下它就可以在打开程序窗口之间切换。Win10自然也支持这个快速切换方式,而且还提供了更华丽的升级版——不信你就按下“Win+Tab”看看,3D样式的窗口预览,会令你感到惊艳的!
3. Win+Shift:Win10中的UAC(用户账号控制)虽然已经很智能,但并不完美,不少程序我们在执行的时候需要手工指定“以管理员身份运行”。如果要“以管理员身份运行”的程序位于“开始”菜单或者“桌面”中,那就简单多了:按下“Ctrl+shift”组合键,再点击左键就“以管理员身份运行”了。
4. Win+T:我们知道,Win10下的任务栏左边是锁定到任务栏的程序列表。鼠标放在某个图标上稍等片刻或者直接点击,则会预览该程序打开的所有窗口。如果我们想通过快捷键切换不同程序的预览窗口呢?不停按下“Win+T”试试吧!
5. Ctrl+Shift+Esc:如同大多数的颁奖典礼一般,很多作者比如我,也喜欢将最好的东西放到最后介绍——Ctrl+Shift+Esc就是我们今天的最大的礼物。在 WinXP时代,大家想要打开“任务管理器”,按下那个众所周知的“Ctrl+Alt+Del”三指禅即可,可到了Win10中,按下这个组合键,打开的却 是“锁定计算机”、“启动任务管理器” 、“切换用户”等一系列任务列表,虽然也可以间接打开“任务管理器”,但更直接的方法是按下“Ctrl+shift+Esc”组合键。
当然,掌握了这些快捷键还远不能提高一名程序员的的效率。无论我们使用哪种语言,一款好用适合的IDE绝对是必不可少的(用记事本的大神请忽略这句),前面说过工欲善其事,必先利其器,我们所使用的的IDE就是这样的一柄利器,但是空有利器却无功法催动,那无异于赤手空拳、对敌对垒,因此,IDE快捷键就是打狗棒配套的打狗棒法了。
作为一名苦逼的Java程序员,我平常使用最多的IDE就是这款Idea了(无敌好用,十分推荐!)。下面给大家介绍一点关于我编码过程中常用的几个类型的快捷键。
1. 智能提示
Intellij首当其冲的当然就是Intelligence智能!
基本的代码提示用Ctrl+Space(但作为Eclipse老用户,我更喜欢把这个快捷键改为Ctrl+ /),还有更智能地按类型信息提示Ctrl+Shift+Space,但因为Intellij总是随着我们敲击而自动提示,所以很多时候都不会手动敲这两个快捷键(除非提示框消失了)。
用F2/ Shift+F2移动到有错误的代码,Alt+Enter快速修复(即Eclipse中的Quick Fix功能)。当智能提示为我们自动补全方法名时,我们通常要自己补上行尾的反括号和分号,当括号嵌套很多层时会很麻烦,这时我们只需敲Ctrl+Shift+Enter就能自动补全末尾的字符。而且不只是括号,例如敲完if/for时也可以自动补上{}花括号。
最后要说一点,Intellij能够智能感知Spring、Hibernate等主流框架的配置文件和类,以静制动,在看似“静态”的外表下,智能地扫描理解你的项目是如何构造和配置的。
2. 重构
Intellij重构是另一完爆Eclipse的功能。
其智能程度令人瞠目结舌,比如提取变量时自动检查到所有匹配同时提取成一个变量等。尤其看过《重构-改善既有代码设计》之后,有了Intellij的配合简直是令人大呼过瘾!也正是强大的智能和重构功能,使Intellij下的TDD开发非常顺畅。
切入正题,先说一个无敌的重构功能大汇总快捷键Ctrl+Shift+Alt+T,叫做Refactor This。按法有点复杂,但也符合Intellij的风格,很多快捷键都要双手完成,而不像Eclipse不少最有用的快捷键可以潇洒地单手完成(不知道算不算Eclipse的一大优点),但各位用过Emacs的话就会觉得也没什么了(非Emacs黑)。
此外,还有些最常用的重构技巧,因为太常用了,若每次都在Refactor This菜单里选的话效率有些低。比如Shift+F6直接就是改名,Ctrl+Alt+V则是提取变量。
3. 代码生成
这一点类似Eclipse,虽不是独到之处,但因为日常使用频率极高,所以还是列举出来。
常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码,用Ctrl+J可以查看所有模板。还有一个极其实用的是Alt+Insert,在编辑窗口中点击可以生成构造函数、toString、getter/setter、重写父类方法等。这两个技巧实在太常用了,几乎每天都要生成一堆main、System.out和getter/setter。
另外,Intellij IDEA 13中加入了后缀自动补全功能(Postfix Completion),比模板生成更加灵活和强大。例如要输入for(User user : users)只需输入user.for+Tab。再比如,要输入Date birthday = user.getBirthday();只需输入user.getBirthday().var+Tab即可。
4. 编辑
编辑中不得不说的一大神键就是能够自动按语法选中代码的Ctrl+W以及反向的Ctrl+Shift+W了。此外,Ctrl+Left/Right移动光标到前/后单词,Ctrl+[/]移动到前/后代码块,这些类Vim风格的光标移动也是一大亮点。
以上Ctrl+Left/Right/[]加上Shift的话就能选中跳跃范围内的代码。Alt+Forward/Backward移动到前/后方法。还有些非常普通的像Ctrl+Y删除行、Ctrl+D复制行就不多说了。
关于光标移动再多扩展一点,除了Intellij本身已提供的功能外,我们还可以安装ideaVim或者emacsIDEAs享受到Vim的快速移动和Emacs的AceJump功能(超爽!)。另外,Intellij的书签功能也是不错的,用Ctrl+Shift+Num定义1-10书签(再次按这组快捷键则是删除书签),然后通过Ctrl+Num跳转。这避免了多次使用前/下一编辑位置Ctrl+Left/Right来回跳转的麻烦,而且此快捷键默认与Windows热键冲突(默认多了Alt,与Windows改变显示器显示方向冲突,一不小心显示器就变成倒着显式的了,冏啊)。
5. 其他辅助
以上这些神键配上一些辅助快捷键,即可让你的双手90%以上的时间摆脱鼠标,专注于键盘仿佛在进行钢琴表演。
而剩下的10%,这些不起眼却是至关重要的最后一块拼图有:
- 命令:Ctrl+Shift+A可以查找所有Intellij的命令,并且每个命令后面还有其快捷键。所以它不仅是一大神键,也是查找学习快捷键的工具。
- 新建:Alt+Insert可以新建类、方法等任何东西。
- 格式化代码:格式化import列表Ctrl+Alt+O,格式化代码Ctrl+Alt+L。
- 单元测试:Ctrl+Alt+T创建单元测试用例。
- 调试:F7/F8/F9分别对应Step into,Step over,Continue。
以上的内容就是我对于一名程序员在键盘上所应该掌握技能、提高使用效率的总结了。
其中参杂了一些我个人的一些心路历程,各位看官就当个乐子就好,重点看一下干货的内容。
希望本文能够帮助到您,感谢阅读!
参考链接:
https://baike.baidu.com/item/%E9%87%91%E5%B1%B1%E6%89%93%E5%AD%97%E6%B8%B8%E6%88%8F?sefr=enterbtn