转载于:https://ghui.me/post/2016/05/use-of-control-key/
Control键是所有类Unix系统(Mac, Linux)下一个非常有用的按键,但也是一个经常被忽视的按键,特别是在Mac
平台下,Command
键完全代替了在Windows
平台下的Ctrl
键,很多人不清楚为什么Apple又额外加了一个Control键,我想这和著名的Emacs
编辑器有关,Emacs
下有很多方便的快捷键,其中很多都需要用到Control
键,Mac
系统就原生继承了很多这些快捷键,下面就根据我在实际开发过程中遇到的具体情况来总结一下如何用好Control
键,效率真能提高不少。
Control的常用组合键
移动类
- Control-F 前进光标 (效果同右方向键)
- Control-B 后退光标(效果同左方向键)
- Control-P 光标上移(效果同上方向键)
- Control-N 光标下移(效果同下方向键)
- Control-A 光标移动到行首
- Control-E 光标移动到行尾
删除类
- Control-D 删除光标后面的一个字符
- Control-H 删除光标前面的一个字符
- Control-K 删除当前行光标以后的所有字符
- Control-W 删除光标前的一个单词
- Control-U 删除当前行的所有字符
其它类
- Control-T 交换光标两边的字符
- Control-L 清屏(仅适用于终端下)
- 待补充…
一些常用场景
-
通常情况下,
上下左右
键都远离主键盘区,如果在你高速打字的过程中需要移动输入光标位置,这个时候直接通过上下左右
键就不得不将右手移出主键盘区,就会降低输入的速度,通常这个时候你就可以通过Control
的组合键达到快速移动光标的目的。再比如你在一些IDE(Xcode,Android Studio等)里面选择代码补全的不同候选项时,就可以通过Control-P
与Control-N
来达到切换选择不同候选项的操作. -
Mac的键盘上没有
Home
与End
键, 如果你想将光标快速移动到行首与行尾就比较麻烦(当然你可以通过Command与->
或Command与<-
实现,但这样你又需要去操作方向键, 方向键远离主键盘区, 速度势必会降低), 这时你就可以通过Control-A
与Control-E
实现, 这两个组合键非常适合在终端下使用 -
有些时候你在终端下输入了很长的命令, 但发现输入有误, 需要完全删除重新输入, 通常情况下你都会使用
Delete
键去做, 但Delete
只能一次删除一个字符, 速度很慢, 这时你就可以通过Control-U
键快速的达到清除当前所有输入的目的, 再比如你当前的输入只有从中间某个位置向后是错误的, 这时你可以通过Control-B
或Control-F
将光标移动到对应位置, 然后再利用Control-K
快速达到删除当前光标后所有输入的目的 -
在输入的过程中如果发现个别字符不对需要删除重新输入, 你当然可以通过
Delete
键达到, 但Delete
键和方向键一样有点远, 更方便的你可以通过Control-D
与Control-H
实现, 还有些时候错的不是一个或几个字符,而是一个或几个单词你可以Control-W
达到 -
在终端下如何清屏? 很多人都是通过输入
clear
达到, 但如果这时你终端里正输入的有一条待执行的命令,这条命令的输出可能有很多你想清一下屏后再执行, 你怎么办,总不能删除当前命令后再输入clear
命令, 然后再重新输入刚才的那条命令吧, 其实这时你可以通过Control-L
组合键达到目的,这个差不多是我在终端下用的最多的一个快捷键了.
交换Control与Caps Lock键的位置
其实看了上面那么多介绍, 你可能并不以为然,并不觉得Control
键有多方便, 那是因为你的Control
键并没有那么容易按到, 如果可以把Control
键放到一个很容易按到的地方就万事大吉了, 其实键盘上有另外一个很容易按到的按键 Caps Lock
键, 这个按键并不太常用, 你完全可以把Control
与Caps Lock
这两个键做一下交换, 或者干脆把Caps Lock
键也映射为Control
键,并不做交换,而是完全弃用Caps Lock
键. 下面说一下如果在Mac平台下替换这两个键:
至于Linux下如何做, 大家可以自行Google, 之前我做过, 设置起来没有Mac下方便, 但也是可以实现的.