摘要: 好友幻神的《Emacs之魂》正在火热连载中,群里人起哄要给他捧捧场。 做为一个学习Emacs屡败屡战的用户,这个场仍是值得捧一下的。至少我是买了HHKB键盘的。。。python
好友幻神的《Emacs之魂》正在火热连载中,群里人起哄要给他捧捧场。
做为一个学习Emacs屡败屡战的用户,这个场仍是值得捧一下的。至少我是买了HHKB键盘的。。。git
与其余常规的键盘不一样,个人键盘的Control键的位置,是常规布局的大小写锁定键的位置。为何这么布局呢?vim
咱们看看幻神在emacs人界用法中所介绍的emacs最常的快捷键吧:编辑器
C-f 后一个字符 C-b 前一个字符 C-p 上一行 C-n 下一行 M-f 后一个单词 M-b 前一个单词 C-a 行首 C-e 行尾 C-v 向下翻一页 M-v 向上翻一页 M-< 到文件开头 M-> 到文件末尾 C-x C-f "find"文件, 即在缓冲区打开/新建一个文件 C-x C-s 保存文件 C-x C-w 使用其余文件名另存为文件 C-x C-v 关闭当前缓冲区文件并打开新文件 C-x i 在当前光标处插入文件 C-x b 新建/切换缓冲区 C-x C-b 显示缓冲区列表 C-x k 关闭当前缓冲区 C-z 挂起emacs C-x C-c 关闭emacs 其中,C表示Ctrl键,M表示Alt键,C-f表示按住Ctrl而后按f, C-x C-s表示先按Ctrl+x,再按Ctrl+s, C-x b表示先按Ctrl+x,再按b。
Ctrl键之经常使用,可见一斑。
这就引出一个著名的段子:由于emacs中大量使用Ctrl键,而普通键盘的Ctrl键位于小指管可是比较费力的键位下,emacs会致使左手小指容易损伤的段子层出不穷。为了提升效率,改键盘布局是最经常使用的办法之一。不信您试试,按Caps lock是否是比按Ctrl要容易,手指稍微移动一下就能够了。
另外,emacs对于Alt或者Esc的需求也很多,这两个键也是小指的管辖范围。布局
为何emacs会如此大量地使用Ctrl和Alt组合键呢?缘由很简单,emacs是个无模式的编辑器。相对而言,vi是个有模式的编辑器,分为命令模式和编辑模式。在命令模式下,j是向下移一行,k是向上移一行,h是左移,l是右移,手在基本键位上不动就能够快速移动。
因为命令模式下,大部分键都被当成命令了,输入这些键表明的字符怎么办?这就须要经过i命令,o命令等切换到编辑模式,在编辑模式下,能够正常输入字符。可是,在编辑模式下,大部分命令又无法使用了。使用命令的时候,还须要输入Esc来切回命令模式。学习
因而,emacs和vi的宗教战争,在有模式和无模式这一战场打了几十年。spa
作为编辑器圣战的双雄,除了基本功能以外,emacs和vim都有本身的扩展语言:emacs是emacs lisp,而vim是vimscript.
这两门都是不那么现代的语言。emacs lisp没有common lisp那么强大复杂,可是爱好者如云,至今不断有新的粉丝加入进来。而vimscript的爱好者几乎没有,有用perl写vim扩展的,也有用python写vim扩展的。。。插件
在宗教战争的两个分战场中,lisp占优点,emacs的平台有优点。而在模式之争上,vi的快捷键的优点使得它的用户数相对更多一些。code
那么,emacs和vim真的是一直水火不融地宗教战争下去吗?对于emacs用户来说,历来不是这样。emacs用户以emacs的可扩展性为武器,开发出了模拟vi模式方案的插件, evil就是其中最流行的一种。
vi用户还有一种有效的输出方式,就是采用leader键,把命令用leader键组合起来。
emacs的插件不少,配置起来也复杂,因此学习使用emacs最好的方式就是借鉴高手已经配好的配置方案。目前,比较流行的方案就是spacemacs.
spacemacs默认使用evil来模拟vi的模式,而且以空格space键做为leader key。
在默认模式下,输入空格键,就会弹出下一个键表明的命令,例:空格,而后f,显示的界面以下:
spacemacs的安装很是简单,只有一条命令:
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
至此,咱们的emacs学习之旅正式开始。咱们既学emacs,也学习vi的模式和leader key。同时,咱们使用spacemacs,已经为咱们默认配好了不少强大的插件,比普通版本要方便。
惟一不足的是,咱们学的知识可能比幻神讲得人界方式更多一些,毕竟vi就是学习曲线比较陡的编辑器。可是,只要坚持下来,您会以为值得的!