我也說說Emacs吧(1) - Emacs和Vi咱們都學

摘要: 好友幻神的《Emacs之魂》正在火熱連載中,羣里人起鬨要給他捧捧場。 做爲一個學習Emacs屢敗屢戰的用戶,這個場仍是值得捧一下的。至少我是買了HHKB鍵盤的。。。python

好友幻神的《Emacs之魂》正在火熱連載中,羣里人起鬨要給他捧捧場。
做爲一個學習Emacs屢敗屢戰的用戶,這個場仍是值得捧一下的。至少我是買了HHKB鍵盤的。。。git

從個人鍵盤提及 - 有模式和無模式

下面是個人HHKB鍵盤的局部圖:
hhkbgithub

與其餘常規的鍵盤不一樣,個人鍵盤的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 lisp和vimscript

作爲編輯器聖戰的雙雄,除了基本功能以外,emacs和vim都有本身的擴展語言:emacs是emacs lisp,而vim是vimscript. 
這兩門都是不那麼現代的語言。emacs lisp沒有common lisp那麼強大複雜,可是愛好者如雲,至今不斷有新的粉絲加入進來。而vimscript的愛好者幾乎沒有,有用perl寫vim擴展的,也有用python寫vim擴展的。。。插件

在宗教戰爭的兩個分戰場中,lisp佔優點,emacs的平臺有優點。而在模式之爭上,vi的快捷鍵的優點使得它的用戶數相對更多一些。code

evil - emacs上模擬vi的模式

那麼,emacs和vim真的是一直水火不融地宗教戰爭下去嗎?對於emacs用戶來說,歷來不是這樣。emacs用戶以emacs的可擴展性爲武器,開發出了模擬vi模式方案的插件, evil就是其中最流行的一種。
vi用戶還有一種有效的輸出方式,就是採用leader鍵,把命令用leader鍵組合起來。

spacemacs

emacs的插件不少,配置起來也複雜,因此學習使用emacs最好的方式就是借鑑高手已經配好的配置方案。目前,比較流行的方案就是spacemacs. 
spacemacs默認使用evil來模擬vi的模式,而且以空格space鍵做爲leader key。

下面是spacemacs的界面抓圖:
spacemacs

在默認模式下,輸入空格鍵,就會彈出下一個鍵表明的命令,例:空格,而後f,顯示的界面以下:

spacemacs f

spacemacs的安裝很是簡單,只有一條命令:

git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d 

至此,咱們的emacs學習之旅正式開始。咱們既學emacs,也學習vi的模式和leader key。同時,咱們使用spacemacs,已經爲咱們默認配好了不少強大的插件,比普通版本要方便。

惟一不足的是,咱們學的知識可能比幻神講得人界方式更多一些,畢竟vi就是學習曲線比較陡的編輯器。可是,只要堅持下來,您會以爲值得的!

原文連接

相關文章
相關標籤/搜索