原文来自

网易杭州 QA Team

:http://qa.blog.163.com/blog/static/1901470022015520105518641/

作为程序员的我们,平常工作中,最经常使用的软件(工具)可以说是非终端(Terminal)莫属了。甚至可以毫不夸张地说:要是在战争年代,那么终端就是程序员手中的武器。
可是,你们看看周围,平心而论,大家真得都把手中的武器用得娴熟了吗?这些天通过对周围同事日常终端操作习惯的观察,我发现,事实情况并不是那么乐观。首先,来看几个真实的案例——
案例一
案例二
案例三

看了上述图片,你一定很气愤,怎么可以使用这么低效的方式使用终端!我们可是天天跟电脑打交道的程序员啊不是吗!然而遗憾的是,这种情况并非少见。

此刻屏幕前的你,如果从这3个活生生的例子中隐约看到了自己的影子,那么也不要太自责。相信我,只需花上几分钟时间接着把这篇文章看完,然后打开自己的终端,稍微跟着下文的指南练习一下,一定会有不少收获的。在本文的末尾,我们还会一起返回来看看上面这3个例子中,到底应该如何更有效率的光标移动?
那么,就趁现在,就打开你的终端,对照着下面的命令,熟悉一遍操作吧:
 
光标移动
Ctrl + a      # 将光标移至行首
Ctrl + e      # 将光标移至行末
Alt + f        # 将光标向前(右)移动一个单词
Alt + b       # 将光标向后(左)移动一个单词
Ctrl + f      # 将光标向前(右)移动一个字符
Ctrl + b     # 将光标向后(左)移动一个字符
Ctrl + xx    # 在光标当前位置和行首之间切换
命令编辑
Ctrl + d     # 删除光标所在位置的一个字符
Ctrl + h     # 删除光标前面的一个字符,效果同后退键
Ctrl + w     # 删除光标所在位置的单词(向前)
Alt + d       # 删除光标所在位置的单词(向后)
Ctrl + l      # 清空当前屏幕
Ctrl + k     # 剪切光标位置到行末的内容至剪切板
Ctrl + u     # 剪切光标位置到行首的内容至剪切板
命令历史
Ctrl + r      #搜索最近输入的命令
Ctrl + p     #上一个命令
Ctrl + n     #下一个命令
!!              #重复执行上一个命令
emacs模式和vi模式
这里有一点需要提醒读者的是,上文提到的所有命令,都是`emacs`模式的。由于历史原因,Bash中默认的设置是`emacs`模式,如果读者当中有`vim`高手的话,或许你可以尝试下用`vi`模式来操作Bash终端,那将会是不一样的一种酷炫技能!
将终端的操作模式改成`vi`的方式也很简单,直接在终端中执行`set -o vi`就可以了。如此一来,你就可以使用`vim`中全宇宙最强大的光标移动命令来操作终端命令了,什么`^`移动到行首,`$`移动到行尾之类的命令都可以随便用了,简直来去自如,相信平时用惯了`vim`的高手一定会喜欢的。当然,如果不喜欢,你还可以用`set -o emacs`切换回来的。
Shibin@Mac $ set-o vi 
重看3个案例
如果屏幕前的你认真看到了这里,相信你自己一定也知道文章一开始的三个真实例子应该怎样纠正了,现在,我们就分别再来看一下这三个案例:
案例一
`ctrl+a`返回行首,添加`./`即可
案例二
`ctrl+a`返回行首,按3次`ctrl+d`删除字符`vim`即可,或者`alt+d`直接一次性删除`vim`这个单词
案例三
`ctrl+a`返回行首,按4次`alt+f`跳到`OnlineIssueLogs`末尾,删除`s`
后记
其它的话不啰嗦,笔者最后就说一句:既然我们免不了每天花那么多时间跟终端(Terminal)打交道,那为何不"咬咬牙"练习30分钟,而后受益30年呢?难道你真的愿意在帮别人在终端上调试命令的时候按狂按BACKSPACEE<--键么?更何况我还没有告诉你本文提到的这些高效的光标移动技能不单单在终端里有使用,它们在浏览器地址栏,搜索栏,文本框,甚至是本地编辑文件名,前端Console调试什么的这些地方都有用武之地你知道么?

后续跟踪(2015-06-29更新)

一些同学反馈说某些Alt组合的键不起作用,这里涉及到计算机发展史上的Meta键,现在的计算机基本上都已经没有这个Meta键了,有兴趣的同学可以看这里——Meta键始末。其实,由于大家使用的终端类型都不一样,有时可能需要做些额外的设置才能使Alt组合键生效,比如说Ubuntu下默认把Alt+F组合键映射成了从菜单栏打开文件。我这边帮大家看了下几个常见的终端,比如Mac自带的终端、iTerms终端以及Ubuntu自带的终端分别需要做如下简单的设置才能让上文提到的Alt组合键生效,大家不妨试试:

iTerms终端
iTerms-->Preferences-->Profile

 

Mac自带终端
终端-->偏好设置-->使用Option键作为Meta键

Ubuntu自带终端
Edit-->Keyboard Shortcuts...-->去掉"Enable menu access keys"

参考资料
Bash Keyboard Shortcuts http://ss64.com/bash/syntax-keyboard.htm

转载于:https://www.cnblogs.com/luodengxiong/p/5549796.html

程序员,请用好你手中的武器相关推荐

  1. 程序员请收好:10个非常有用的Visual Studio Code插件

    作者 | Daan 译者 | Elle 出品 | CSDN(ID:CSDNnews) [导读]一个插件列表,可以让你的程序员生活变得轻松许多.无论你是经验丰富的开发人员还是刚刚开始第一份工作的初级开发 ...

  2. 程序员请收好:10个非常有用的 Visual Studio Code 插件!

    一个插件列表,可以让你的程序员生活变得轻松许多. 作者 | Daan 译者 | Elle 出品 | CSDN(ID:CSDNnews) 以下为译文: 无论你是经验丰富的开发人员还是刚刚开始第一份工作的 ...

  3. 前谷歌技术主管亲述:程序员请避开这几大雷区

    软件工程师的技能发展都会经历一个自然的过程--经验从无到有,最后变成老手.而一旦到了经验丰富的阶段,他们对代码就不那么感兴趣了.恰恰相反,他们会把更多的精力放在文件设计和代码重构上. 奇怪的是,不管任 ...

  4. visual studio 代码提示插件_程序员请收好:10个非常有用的Visual Studio Code插件

    作者 | Daan 译者 | Elle 出品 | CSDN(ID:CSDNnews) [导读]一个插件列表,可以让你的程序员生活变得轻松许多.无论你是经验丰富的开发人员还是刚刚开始第一份工作的初级开发 ...

  5. 从医记之程序员请呵护你的胃

    2019独角兽企业重金招聘Python工程师标准>>> 前言:转到医院工作已经3月了,虽然不是医生,但也穿着白大褂,看着像那么回事儿,内心也渐渐强大了.上次@王振威 的老婆@刘小羊 ...

  6. 世界读书日:作为一个优秀的程序员请收藏这份书单

    ​4月23日世界读书日全称"世界图书与版权日",又称"世界图书日".最初的创意来自于国际出版商协会.由西班牙转交方案给了联合国教科文组织. 1995年11月15 ...

  7. 2020年iOS 和Android程序员请开始修炼内功

    年底聚餐,很多从事移动开发朋友都在抱怨工作不好找,收入增长慢,公司地位低等问题.遥想2010年移动大爆发时代,从事iOS和Android岗位那可是牛x大发了.真是应了那句老话,逆水行舟不进则退,甚至小 ...

  8. 程序员请注意,这个Python思维误区会致命!

    不止一位程序员告诉我,现在中国力量崛起,以后出国可能大家都得讲中文呢,谁还去学英语啊. 可实际上呢? 程序员对英语的需求不是减弱了,而是更强了.中国产出了大量的新技术,硅谷同样在产生创新技术,中国的开 ...

  9. 程序员请注意:异步编程模式已被人注册为专利

    不论是服务器端编程还是客户端编程,编程中的同步和异步对程序员来说都应该不陌生,我们经常会用同步编程来解决顺序执行问题.用异步解决并行执行问题.然而,就是这样的常见的编程模式,有人却将其申请为专利.在谷 ...

最新文章

  1. 22张深度学习精炼图笔记总结(附原版下载)
  2. 读书笔记之:Boost程序库完全开发指南(Ch1-4)
  3. opengl 贴图坐标控制_材质贴图正确打开方式
  4. 文件服务器的配置与管理(3) 共享文件夹的创建与使用
  5. MyBatis入门学习(一)
  6. WebApi 基于token的多平台身份认证架构设计
  7. 实时互动白板_使用froala文本编辑器构建实时协作白板第1部分
  8. android GitLab使用教程
  9. Android 手机的高级终端 Termux 安装、使用
  10. 51单片机——LED流水灯
  11. ADSL拨号工作原理
  12. 小象学院 nlp 自然语言处理项目实战
  13. Python多线程编程之线程子类化
  14. JDK 19 / Java 19 正式发布
  15. YOLO-V4 论文学习+唐宇迪博士课程学习笔记
  16. 第十一届蓝桥杯 ——成绩统计
  17. Vue3+TS 中使用Provide/Inject 的例子
  18. regsvr32命令详解
  19. WEB前端学习:CSS学习_用户界面样式
  20. Spring Mybatis 异常报错:org.springframework.core.annotation.AnnotationUtils.clearCache()V

热门文章

  1. C#操作IIS创建应用程序池出现异常:无效索引(Exception from HRESULT:0x80070585)
  2. 堆之最小堆、最大堆(java实现)
  3. 用lua解决八皇后问题
  4. 《成为乔布斯》- 一个你不熟悉的乔帮主
  5. O2O的死亡名单,互联网+还能走多远
  6. 强者·愈强:Qualcomm骁龙835移动平台亚洲首秀
  7. logo自动旋转 html,CSS3创作有意思的旋转LOGO
  8. uniapp开发APP随机生成二维码
  9. python使用turtle画竹笋
  10. 蘑菇街校招-possible sentences(搜索(深搜)、双指针)