一疗涉、Spacemacs簡(jiǎn)介

1.用什么編輯器來編碼

編輯器作為程序員每天都要用的生產(chǎn)力工具亚侠,一個(gè)好用的編輯器對(duì)工作效率有很大的提升什往,主流的編輯器有Visual Studio/Sublime/VS Code/JetBrains系列等等,但是今天要聊聊小眾的編輯器:Vim和Emacs挠羔,兩個(gè)歷史悠久的編輯器井仰。

為什么Vim和Emacs作為誕生了40年之久的編輯器埋嵌,到今天還有這么旺盛的生命力破加,并且有一大批死忠呢?
Vim和Emacs有什么優(yōu)勢(shì)雹嗦?

  • 跨平臺(tái)范舀,無需界面支持,可以運(yùn)行在Linux服務(wù)器上了罪,也可以借此搭建遠(yuǎn)程辦公環(huán)境锭环。
  • 幾乎支持所有編程語言,學(xué)會(huì)一個(gè)編輯器泊藕,在做任何程序開發(fā)時(shí)都適用辅辩。
  • 純鍵盤操作,完全可以拋棄鼠標(biāo),這種沉浸式的輸入體驗(yàn)玫锋,注意力可以更專注蛾茉,輸入速度更快。
  • Vim的多模式轉(zhuǎn)換撩鹿,Emacs的組合鍵命令谦炬,熟練掌握會(huì)比IDE有更高的輸入效率,運(yùn)指如飛节沦,這也是用Vim/Emacs最重要的原因键思。(這里寫輸入可能不太準(zhǔn)確,程序員只有小部分時(shí)間在輸入甫贯,更多的時(shí)間是編輯吼鳞、調(diào)整和瀏覽代碼,而Vim和Emacs正是大大提高了這部分操作的效率)

誰適合學(xué)Vim和Emacs叫搁?

  • 雖然對(duì)自己用的編輯器已經(jīng)熟練掌握赖条,但是總會(huì)有輸入跟不上思路的感覺。
  • 如果你想追求極致的編碼效率常熙。

學(xué)Vim和Emacs有什么要求纬乍?

  • 要能熟練用鍵盤盲打,否則用Vim/Emacs只會(huì)是個(gè)負(fù)擔(dān)裸卫。
  • 有耐心仿贬,有毅力學(xué)習(xí)新的技術(shù)。

初學(xué)編程的時(shí)候墓贿,很多人會(huì)在論壇發(fā)帖“求推薦好用的編輯器”茧泪,回帖會(huì)有某位“大神”留下“Vim”三個(gè)字。于是你興致勃勃地下載來Vim聋袋,打開一看队伟,界面怎么這么丑,算了忍忍幽勒,打開個(gè)文件試試好不好用嗜侮。怎么沒有代碼著色?怎么不能打字啥容?怎么沒有代碼提示锈颗?帶著一堆不解憤怒地刪掉Vim,心里咒罵著那個(gè)推薦Vim的人咪惠,并打算這輩子再也不碰這東西了击吱。

編輯器學(xué)習(xí)曲線

這是一張流傳得很廣的編輯器學(xué)習(xí)曲線圖,看到vi和emacs的學(xué)習(xí)曲線遥昧,想學(xué)Vim和Emacs的人大概也會(huì)被嚇走吧覆醇。
但是千萬千萬不要被誤導(dǎo)朵纷,Vim和Emacs找對(duì)方法還是很容易上手的。
所以說怎樣才是正確的學(xué)習(xí)方式呢永脓?
我的建議是:下載編輯器柴罐,使用其他人分享的成熟的配置,開始練習(xí)輸入方式和各種快捷鍵憨奸。等對(duì)編輯器有了足夠的了解再去研究配置的細(xì)節(jié)革屠,定制自己專屬的配置。

2.Vim or Emacs?

Vim被譽(yù)為“編輯器之神”排宰,Emacs被稱為“神之編輯器”似芝,它們都是很優(yōu)秀的編輯器,但是核心理念又大相徑庭:Vim追求極簡(jiǎn)板甘,只做編輯器該做的党瓮,而Emacs越做越龐大,被稱作偽裝成編輯器的操作系統(tǒng)盐类∧椋可能正是這個(gè)原因,才讓Vim和Emacs水火不相容在跳。


作為操作系統(tǒng)的Emacs

那么該學(xué)Vim還是Emacs呢枪萄?
Vim和Emacs最大的區(qū)別在于輸入方式和快捷鍵,對(duì)于大部分人來說猫妙,Emacs更容易上手瓷翻,因?yàn)檩斎牒推胀ň庉嬈鳑]區(qū)別,只是有很多自己特殊的快捷鍵割坠。而Vim的區(qū)別就大很多齐帚,最常用的普通模式,剛上手時(shí)是完全摸不著頭腦的彼哼。是學(xué)Vim還是Emacs对妄?可以分別嘗試一下,找到適合自己的輸入方式最重要敢朱。

在試過Vim以后剪菱,我完全被這種輸入的方式吸引了,它的指令就像是構(gòu)建了一套讓你可以和編輯器對(duì)話的語言蔫饰,它能很聰明地理解你要它做什么琅豆。

daw(助記:delete a word — 刪除一個(gè)單詞)
Vim:知道了愉豺,搞定篓吁!

daw指令

di" (助記:delete inner "" — 刪掉引號(hào)里的內(nèi)容)
Vim:很容易!

di"指令

簡(jiǎn)單敲下三個(gè)按鍵就可以完成其他編輯器需要幾倍或者十幾倍的操作才能完成的事情蚪拦,Vim這種交互方式杖剪,用的時(shí)間越久冻押,積累的技巧就越多,效率就越高盛嘿。
所以后面的內(nèi)容也會(huì)基于Vim的方式展開洛巢。

3.Vim and Emacs?

我應(yīng)該是Vim的忠實(shí)用戶了,各種項(xiàng)目都用Vim來開發(fā)次兆,后來接觸了一個(gè)比較龐大的項(xiàng)目突然出問題了稿茉。
Vim的單線程,不支持異步調(diào)用芥炭,導(dǎo)致在調(diào)用插件時(shí)編輯器處于阻塞的狀態(tài)漓库,只能等其他任務(wù)完成才能繼續(xù)編輯(后來的Vim 8添加了異步的特性)。在這個(gè)比較大的項(xiàng)目里园蝠,代碼提示渺蒿、項(xiàng)目編譯等的時(shí)間越來越長(zhǎng),慢慢變得難以忍受彪薛。查了很多資料茂装,查到了兩個(gè)替代方案,一個(gè)是換用NeoVim善延,另外一個(gè)是Spacemacs少态。NeoVim是Vim的一個(gè)分支,它支持異步調(diào)用易遣。
Spacemacs則不太一樣况增,居然是Emacs?但是看到Spacemacs官網(wǎng)的一句話簡(jiǎn)介训挡,便立即被吸引澳骤。

The best editor is neither Emacs nor Vim, it's Emacs and Vim!

Emacs and Vim,有點(diǎn)意思澜薄,我決定嘗試一下为肮。

4.Spacemacs是什么

Spacemacs

官網(wǎng):http://spacemacs.org/
Github:https://github.com/syl20bnr/spacemacs

Spacemacs是由社區(qū)驅(qū)動(dòng)的一套Emacs配置,同時(shí)支持Vim和Emacs兩種模式肤京,叫Spacemacs是因?yàn)樗肧pace鍵作為了編輯器的Leader鍵颊艳。這套Emacs配置簡(jiǎn)單易用、高效又美觀忘分,獨(dú)特的Layer概念也是它一大特點(diǎn)棋枕。
Layer可以理解為一個(gè)插件集合,當(dāng)我們配置一個(gè)編輯器來支持開發(fā)某種編程語言時(shí)妒峦,通常是需要配置多個(gè)功能插件的重斑,語法支持、代碼補(bǔ)全肯骇、文檔窥浪、語法糾錯(cuò)等等祖很,并且可能其中單單某一個(gè)插件的配置就已經(jīng)非常繁瑣,比如Vim的代碼補(bǔ)全插件“YouCompleteMe”漾脂。Layer的存在大大簡(jiǎn)化了插件的配置假颇,要寫Go語言,在Spacemacs的Layers配置項(xiàng)加上"go"骨稿,編輯器就會(huì)自動(dòng)下載開發(fā)Go語言所需要的插件笨鸡,重啟編輯器就能開發(fā)Go語言了,這樣的設(shè)計(jì)簡(jiǎn)直不要太舒心坦冠。
這種設(shè)計(jì)理念太受歡迎了镜豹,以至于現(xiàn)在還有了SpaceVim項(xiàng)目。

Layer設(shè)置

題外話蓝牲,Spacemacs實(shí)現(xiàn)Vim輸入方式用的插件叫Evil趟脂,Emacs + Vim = Evil,這款把水火不相容的Emacs和Vim融合在一起的插件叫“邪惡”例衍,真的是神來之筆昔期。

后面會(huì)結(jié)合Vim講一些Spacemacs的使用,Vim不會(huì)講很深佛玄,想系統(tǒng)學(xué)Vim的不妨看下這本書《Vim實(shí)用技巧》硼一。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市梦抢,隨后出現(xiàn)的幾起案子般贼,更是在濱河造成了極大的恐慌,老刑警劉巖奥吩,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哼蛆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡霞赫,警方通過查閱死者的電腦和手機(jī)腮介,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來端衰,“玉大人叠洗,你說我怎么就攤上這事÷枚” “怎么了灭抑?”我有些...
    開封第一講書人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)抵代。 經(jīng)常有香客問我腾节,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任禀倔,我火速辦了婚禮榄融,結(jié)果婚禮上参淫,老公的妹妹穿的比我還像新娘救湖。我一直安慰自己,他們只是感情好涎才,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開白布鞋既。 她就那樣靜靜地躺著,像睡著了一般耍铜。 火紅的嫁衣襯著肌膚如雪邑闺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,043評(píng)論 1 291
  • 那天棕兼,我揣著相機(jī)與錄音陡舅,去河邊找鬼。 笑死伴挚,一個(gè)胖子當(dāng)著我的面吹牛靶衍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茎芋,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼颅眶,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了田弥?” 一聲冷哼從身側(cè)響起涛酗,我...
    開封第一講書人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎偷厦,沒想到半個(gè)月后商叹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡只泼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年沈自,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辜妓。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡枯途,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出籍滴,到底是詐尸還是另有隱情酪夷,我是刑警寧澤,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布孽惰,位于F島的核電站晚岭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏勋功。R本人自食惡果不足惜坦报,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一库说、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧片择,春花似錦潜的、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嘲叔,卻和暖如春亡呵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背硫戈。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工锰什, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人丁逝。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓汁胆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親果港。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沦泌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容