2010-12-08 37 views
15

我以前從未使用過Emacs,也是第一次嘗試它時,我的界面看起來不怎麼用戶友好。但從那以後,我聽到很多關於提高生產力的信息,這又重新激起了我的興趣。但是,網絡開發的情況也是如此嗎?喜歡的PHP,蟒蛇,JavaScript/jQuery等。代碼完成功能有多好?是否值得學習使用Emacs進行Web開發

請建議一些資源,讓我開始正確的方向。

+3

我認爲議論問題不允許在這裏堆棧溢出?這很可能開始一場神聖的戰爭。 http://xkcd.com/378/ – 2010-12-08 06:03:49

+3

我不認爲這是論據。他要求提供關於如何開始使用Emacs的技巧,以及爲什麼它有一些吸引力,儘管它的界面非常不友好。 – 2010-12-08 06:24:41

回答

44

對於Emacs,我是一個宗教用戶,所以請帶上幾袋鹽。我會盡量說明我使用Emacs的原因(包括Web開發)。

Emacs的主要優勢在於它具有可擴展性,事實上在它的核心,它是一個lisp解釋器,它帶有一些對文本編輯和顯示有用的原始函數。這使得它「可編程」。你可以幾乎無止境地定製它。

這引發了許多庫,它們可以完成代碼完成,源代碼瀏覽,測試工具集成,重構工具集成,版本控制集成等常見工作。如果開發人員是Emacs用戶,看到她在她的項目上添加了一些東西,這只是以使其與Emacs良好配合並不鮮見。可擴展性也促使了一些傳統的庫,如郵件客戶端,網絡瀏覽器,IRC客戶端,音樂播放器等。

許多Emacs用戶在Emacs內部保留大部分工作(除了可能是他們的瀏覽器)。這允許他們對他們使用的所有內容使用相同的擊鍵和高級技術。我自己把它用於我的日常編碼,我的電子郵件,我的PIM和其他一些東西。例如,我可以在處理我的代碼的同時,在某處寫下類似「TBD」的註釋,並讓PIM部分在我下次打開編輯器時將其記爲TODO項目。例如,我也可以在編碼的時候簡單地用IRC客戶端切換到另一個「緩衝區」(windows的emacs術語),並提出我可能對其他在線人員提出的問題。這使我非常高效和快速。另外,大量命令行UNIX程序(如我的外殼等)上的擊鍵幾乎相同,這可以幫助我更快地完成工作。

另一個優點是Emacs是舊的。人們無休止地調整和磨光了它,仍然如此。其結果是一組編輯命令,我甚至不知道我需要。像「大寫字母」這樣的東西讓我的光標這個單詞的第一個字母是大寫字母聽起來微不足道,但在編輯時,它非常有用。

Emacs具有可擴展性,具有「模式」。這些是特定編程語言的環境。縮進規則,語法,完成等將根據您所處的模式而改變。幾乎所有現代語言都有模式,它們在編輯時提供實質性幫助。你有東西javascript,php等,它們可以幫助你在這些語言編碼。還有特定於Web的工具(例如,Emacs可以與MozRepl對話,以便在編輯時刷新瀏覽器和事物)。人們總是爲自己想要的而寫模式,這並不難。我最近開始使用jekyll來維護我的博客,並寫下a mode讓我的生活更輕鬆)。這些模式增加了功能,但是在基本級別上是相同的(例如,刪除一個字符的相同鍵,通過一個句子等向前移動)。我喜歡這個,因爲我不需要學習全新的密鑰集並習慣它們只是用另一種語言編碼。

這就是說,Emacs是一種不同類型開發人員的工具。大多數硬核Emacs用戶(並且有很多着名的Emacs用戶)不使用許多IDE類型的功能。他們通常喜歡只是一個窗口(沒有工具欄,菜單欄和所有的),以便代碼的房地產是最大的。如果您習慣於使用功能強大的IDE來完成您的工作,Emacs可能不適合您(我認爲這是Trey在其評論中的含義)。但是,如果您希望程序員編輯保持不變,並讓您以最少的麻煩完成工作,那麼您應該嘗試一下。

好的,資源。首先要做的是啓動Emacs並鍵入Ctrl-ht。這給你一個「手」的教程,你可以用它來學習編輯器的基礎知識。完成之後,您可以閱讀http://www.gnu.org/software/emacs/manual/html_node/emacs/index.html上的精細手冊。一旦您對此感到滿意,您可以閱讀Emacs lisp tutorial並根據您的意願開始擴展和定製Emacs。與Emacs IRC channel一樣,EmacsWiki是一個提示,技巧和文檔的好地方。

一切順利!

+0

我還想補充一點,在StackExchange上現在有一個繁榮的[Emacs網站](http://emacs.stackexchange.com)。 – 2014-11-02 21:36:57

16

如果你不喜歡這個界面,那不值得。

問題不在於它值得學習Emacs,它是你想學習的界面嗎?

如果你這樣做,那麼它是值得的。如果你不這樣做,那就不是。

是的,人們喜歡使用Emacs的Web開發。以上只是人們日常編寫和使用模式的一個示例。

這是給你的嗎?不知道。

它比編輯器X更好嗎?或IDE Y?是的,有些事情,沒有其他人。

代碼完成功能非常棒! (除非他們沒有)這取決於你想要什麼,你在說什麼語言等等等等等等等等等等等等等等。

人們用vi,人們用Emacs,人們用記事本,人們用各種各樣的text editors

注意:問模糊的問題導致含糊不清的答案。

+4

+1「提問模糊的問題導致模糊的答案。」 – 2010-12-08 07:33:05

4

最終的網絡編程模式可以說是nxhtml mode。你可以先看看它。您可能還想查看一些豐富的Emacs配置,如Emacs Starter KitEmacs Dev Kit

PHP & Emacs中的Python模式並不是特別好,但相當不錯。 JavaScript模式當然很棒。諸如autocomplete mode等軟件包幾乎可以在任何地方提供良好的完成。

我當然有偏見,但我認爲如果您確實花時間探索Emacs,您會發現它會提高您的工作效率。

0

老實說,大括號反對爛果子/蔬菜肯定會拋出我的方式我最近成爲NetBeans IDE的Web開發迷。特別是當涉及到PHP。

但是要回答你的問題:只有它值得你這樣做才值得。對不起,模糊的問題會得到模糊的答案。 ;)

1

像其他海報一樣,這一切都取決於你想要什麼。如果你想感受一下你能夠在emacs中工作的定製,就像你寫的實際代碼一樣,那麼確定.. Emacs很棒;)

(之前任何人跳下我的喉嚨,Emacs是迄今爲止我最喜歡的編輯器「nix的C/C++編輯,但是這不是什麼OP的這裏尋找;))

在我討伐找到最生產編輯爲PHP,Python和Java腳本等等,到目前爲止我的最愛是Komodo Edit。它不僅具有代碼完成功能,而且還具有跳轉到定義(以及許多其他功能,即全功能IDE應該具備的功能),這是我見過的Visual Studio for OS腳本開發中最接近的功能。哦,它是免費的。

0

如果您使用的是可以進行Web開發的現有IDE,那麼使用IDE。如果不是Emacs值得學習作爲文本編輯器去進行文本編輯或用沒有良好IDE的語言進行編程。