當前位置:編程學習大全網 - 編程語言 - 為何Emacs 和 Vim 被稱為兩大神器

為何Emacs 和 Vim 被稱為兩大神器

追求獨步天下的高手和低手們爭著壹睹它們的風采,可看到它們樸素單薄的界面後,不禁心下懷疑:這就是神器嗎?甚至有人生了輕視之心。膚淺的人嗤之以鼻,說:什麽年代了,還抱著這麽老土的玩意不放,真他媽Geek!同學,請冷靜下來,聽我說:它們的確夠老了,都幾十年的壽命了,但妳想想為什麽,為什麽這麽古老的編輯器,卻有越來越多的人皈依它們。Windows下用UltraEdit和Editplus的人質問:它們到底比UltraEdit和Editplus好在哪裏?我說:不可同日而語。連UltraEdit和EditPlus都沒用過的同學問:它們就相當於Linux上的 Notepad吧?我說:請妳從我的眼前消失。壹些人勇敢地拾起了Vim或Emacs,卻發現學習曲線陡峭而漫長,於是在沒發現它們的強大之前就放棄了,說:太難用了,把鍵盤當鼠標用的爛玩意,有什麽好的?還是有壹些人留下來了,堅定地守護著這兩大神器。壹些說葡萄太酸的人想離開又不甘心,總是問:它們到底神在哪裏啊?我不禁想起了李宗盛的幾句歌詞:: 有人問我妳究竟是哪裏好,這麽多年我還忘不掉?春風再美也比不上妳的笑,沒見過妳的人不會明了。 也許妳不會明了,我還是要努力講壹講。1. 無敵的可擴展性1.1 可擴展性給了軟件強大的生命曾幾何時,Windows用戶對軟件的可擴展性沒有概念,他們只能對他們使用的軟件進行非常有限的定制。擴展軟件的權利保留在軟件開發者手中。軟件的使用者如果想要新的功能和特性,只能等待軟件的升級。有能力的用戶等不及了,為了添加自己想要的功能,從0開始寫了壹款新的軟件。就這樣,新的功能意味著新的軟件,Windows下的軟件前赴後繼,迅速地更新換代著。因此, Windows下的軟件都很短命。Linux和開源軟件漸漸流行起來,人們才發現:可擴展性才能給軟件強大的生命。在MS的VS橫行的今天,Eclipse為什麽被評為最好的IDE?就是因為它在IDE中最具可擴展性。在IE幾乎壹統天下的時候,為什麽Firefox能奪走越來越多的用戶,也是因為它的可擴展性。提供了良好的擴展接口,用戶自然會寫出各種各樣的插件,來滿足用戶自己形形色色的要求。這樣,軟件在用戶的推動下自然變得強大了。Emacs和Vim沒有被時代淘汰,反而越發強大,也正是因為在數不清的編輯器中,他們具有無可匹敵的可擴展性。1.2 Emacs是偽裝成編輯器的操作系統有句誇張的話說:Emacs是偽裝成編輯器的操作系統。細細想來,這句話並不誇張。Emacs其實是個Lisp的解釋器,因此可以用Lisp靈活地擴展。 Lisp是什麽東西,這同樣是種很有生命力的編程語言。在C語言還沒有發明的年代,MIT的人工智能實驗室寫ITS操作系統時,壹部分用的是匯編語言,還有壹部分就是用的Lisp。現在,Lisp仍在人工智能研究領域廣泛使用著。有這麽牛逼的擴展語言,註定Emacs向著無所不能的方向發展。漸漸地,人們用Emacs不再限於寫程序,寫文檔,而且在Emacs裏管理文件系統,運行終端,收郵件,上網,聽音樂……,真是壹發不可收拾。甚至,有人用Emacs控制咖啡機煮咖啡。這種大而全的擴展,背離了“壹個程序只做壹件事並做好它”的 Unix哲學,被Unix的忠誠用戶所詬病。可是真的背離了嗎? Emacs說過自己是壹個編輯器嗎?正是因為Emacs的無敵的可擴展性,人們才分不清Emacs到底是不是壹個編輯器了。但,就是有人喜歡這種All-in-One的哲學,喜歡在Emacs中完成每件事。所以才會有人寫《生活在Emacs中》,所以, Emacs才會成為壹種信仰。1.3 Vim不只是ViVim是Vi最受歡迎的變種之壹,除了繼承了Vi迅捷的編輯方式, Vim的功能已經比原始的Vi強大得多。這也得益於它可以用Vim腳本無限地擴展。 Vim.org 上已經有數千個腳本了,給Vim增加各種各樣的特性和功能。為了證明Vim的可擴展性不輸於Emacs,也有用戶寫了在Vim中玩遊戲、運行Shell、和集成GDB在Vim內部調試的插件。客觀地講,Vim的腳本語言與Emacs的ELisp相比,略顯遜色,但這絲毫不妨礙它把Vim擴展成非常優秀的編輯器。說到底,Vim的前身Vi和Emacs的設計采用了不同的哲學, Vi更符合Unix傳統,它通過管道機制和系統內各種積木工具打交道,它講究的是和系統內的工具程序協作來完成用戶的任務。和Emacs相比,它的定位很明確,就是要做壹個強大的編輯器。因此Vim的絕大部分擴展,都是為了更好地完成編輯文本的任務。海納百川,有容乃大。Emacs和Vim通過別的編輯器無法比肩的可擴展性,不斷吸收廣大用戶的智慧,是它們能成為“神器”的原因之壹。2. 特立獨行的魅力2.1 可擴展性讓妳傾註了靈魂壹旦妳意識到Vim或Emacs的強大,妳就踏上了不停發掘它們潛力的漫漫長路。妳不停地改進自己的配置文件,妳不停地搜索更好的插件,甚至有壹天妳開始動手寫自己的插件。就像劍客保養自己的劍壹樣,妳也甘心花時間提升妳的Vim或Emacs。經年累月,不知不覺,妳已經在那把劍上傾註了妳的靈魂。2.2 獨特的操作方式讓妳中了毒Emacs和Vim有著迥異的操作方式,卻成了Unix/Linux世界中兩種代表性的操作方式,有些軟件的操作方式類似Vi,而有些軟件的方式類似Emacs,甚至有些軟件提供了Vi的鍵綁定和Emacs的鍵綁定讓妳選擇。而無論哪種操作方式,對Windows用戶來說都是古怪的。雖說古怪,多少代人也驗證了這兩種操作方式的高效。Emacs號稱Ctrl到死的編輯器。其實它幾乎用了所有的輔助鍵,聽說過沒有,Emacs = Esc + Meta + Alt + Ctrl + Shift。所以高德納大師說操作Emacs,就像彈奏管風琴。 Emacs使用非常多的組合按鍵,這大概也是它高效於其它無模式編輯器的原因之壹。妳也可以定義自己的組合鍵序列,調用自己寫的lisp函數,完成自己想要的功能。Vi壹向是以快速的文本編輯聞名於世的。它的按鍵更簡潔,通常是單個字符按鍵,就實現某種操作。但這是以有模式為代價的。妳要不停地按Esc在從它的插入模式返回Normal模式。客觀得講,在文本編輯方面, Vim比Emacs高效,因為它提供了壹些Emacs沒有對應功能的操作來輔助高效的文本編輯。但它的模式切換也讓壹些人受不了,於是那些人選擇了 Emacs。不管妳選擇了Vim還是Emacs,妳都要為習慣它們獨特的操作方式而努力,這是壹個技藝積累的過程。當妳習慣了Vim或Emacs,妳會有欲罷不能的感覺,妳希望用它們完成盡可能多的任務,因為妳再用別的編輯器也已經不習慣。用Vim或Emacs就像吸食毒品,慢慢地就會上癮。它們會帶給妳漸漸強烈的快感,但妳也向它們獻出了自己的靈魂。這時,妳只能稱它們為神器。3. 黑客的編輯器Vim的前身Vi的作者Bill Joy和Emacs的作者Richard Stallman 都是那個時代著名的黑客,所以這兩款編輯器壹開始面向的主要用戶就是寫程序的人,現在仍然是。它們對編程加入了越來越多的支持,如語法高亮、智能縮進、關鍵字補全甚至集成調試。也有越來越多的程序員從IDE轉向了Vim和Emacs。用Vim和Emacs編程到底有什麽好處?我想首先是它們高效的編輯操作會提高妳的編程效率。其次妳可以用它們完成各種語言的編程,所謂壹劍在手,夫復何求。妳不用再因為編程語言不同去學習不同的IDE的使用,那些龐大的IDE的升級換代也與妳再不相關,妳把精力用於學習編程語言本身就好了。聽說Google和微軟內部開發也都不用IDE的,他們也會用Emacs或Vim。因為我寫的程序不多,還不能深入體會用Vim或Emacs開發程序的樂趣。我只是覺得這很酷,妳看,Linux之父Linus多年來用的是壹款 MicroEmacs,它比GNU Emacs或XEmacs少許多功能,但Linus就是用它在維護Linux。 微軟的大牛Don Box,Com之父,壹直用Emacs,他說誰也不能奪走他的編輯器。他還在網上放了壹段他用Emacs寫C#程序的視頻。編程大師們的選擇,也是Emacs和Vim被追捧為神器的原因之壹。4. 神器引發的聖戰Vim用戶和Emacs用戶有著旗鼓相當的品位,應該互相欣賞才對。現實卻是,忠誠於Vim的用戶和忠誠於Emacs的用戶互不相容,常常沒完沒了地打口水仗。Emacs用戶說Vim的操作方式單壹而古怪, Vim用戶說Emacs體積龐大,啟動緩慢。很有點壹山不容二虎的意思,大概因為二者都處於神器的高度,才會鬥爭不斷吧。也可能是因為二者截然不同的設計哲學吸引的用戶在價值觀上也互不認同。

  • 上一篇:國內外的Hadoop應用現狀
  • 下一篇:編程微信代碼
  • copyright 2024編程學習大全網