学习使用Emacs是否值得用于Web开发?

19

我以前从未使用过 Emacs,第一次尝试时,它的界面让我感到非常反感,似乎不太友好。但自那以后,我听说它可以提高生产力,这重新激起了我的兴趣。但对于 web 开发来说也是这样吗?对于像 PHP、Python、JavaScript/jQuery 等语言来说有多好?代码自动完成功能如何?

请推荐一些资源,帮助我朝着正确的方向入门。


3
我认为在Stack Overflow这里不允许有争议性的问题,这可能会引发战争。http://xkcd.com/378/ - Jed Daniels
3
我不认为这是有争议的。他正在寻求如何入门Emacs,以及虽然它界面不太友好但仍有吸引力的原因。请给予一些提示。 - Noufal Ibrahim
6个回答

51

对于Emacs,我是一个非常忠实的使用者,所以请带着一些保留意见来看待我的观点。我将尝试说明我使用Emacs(包括Web开发)的原因。

Emacs的主要优势在于它的可扩展性和事实上它是一个Lisp解释器,具有用于文本编辑和显示的一堆基本函数。这使得它“可编程”。您可以几乎无限地定制它。

这激发了许多库来执行(通常的)操作,例如代码自动完成、源代码浏览、测试工具集成、重构工具集成、版本控制集成等等。如果项目中的开发人员是Emacs用户,很常见会看到她添加一些内容到她的项目 只是 为了与Emacs良好地配合使用。可扩展性也促进了一些不太常规的库,例如邮件客户端、Web浏览器、IRC客户端、音乐播放器等等。

许多Emacs用户将他们的大部分工作(除了可能的浏览器)都放在Emacs里面。这使他们能够使用相同的按键和高级技术来处理所有的任务。我个人用它进行日常编码、发送电子邮件、当做我的PIM以及其他一些事情。例如,当我在编写代码时,只需在某个地方写上“TBD”作为注释,下次打开编辑器时,PIM部分就会将其记下来作为待办事项。另外,在编码过程中,我可以简单地切换到带有IRC客户端的另一个“buffer”(Emacs术语中的窗口),并向在线的其他人询问我可能有的问题。这使我的工作更高效、更快捷。此外,许多命令行UNIX程序(如我的shell等)的按键几乎相同,这帮助我更快地完成工作。

另一个优点是Emacs很。人们已经不断地对它进行了调整和改进,仍然如此。结果是一组我甚至都不知道自己需要的编辑命令。像“capitalise word”这样的东西可以将光标所在单词的首字母大写,听起来微不足道,但在编辑时非常有用。

作为一个可扩展的编辑器,Emacs 有“模式”。这些是特定编程语言的环境。缩进规则、语法、自动完成等会随着您所使用的模式而改变。它几乎支持所有现代语言,它们在编辑时提供了很多帮助。您可以使用一些针对 javascriptphp 等语言编写的工具来辅助编码。还有一些 Web 特定的工具(例如 Emacs 可以与MozRepl进行交互,这样您就可以在编辑时刷新浏览器和其他内容)。人们经常根据自己的需要编写模式,这并不太难。我最近开始使用 jekyll 来维护我的博客,并编写了 一种模式,使我的生活更轻松). 这些模式增加了功能,但从基本层面上看是相同的(例如,删除字符或按句子向前移动的键是相同的)。我喜欢这一点,因为我不需要学习全新的键集并习惯它们才能在其他语言中编写代码。
话虽如此,Emacs 是一种不同类型的开发工具。大多数狂热的 Emacs 用户(有很多著名的)不使用许多 IDE 类型的特性。他们通常只喜欢一个窗口(没有工具栏、菜单栏等),以便代码占用最大的空间。如果您习惯于依赖功能丰富的 IDE 来完成工作,则 Emacs 可能不适合您(我认为这是 Trey 在评论中所说的)。但是,如果您想要一个编程编辑器,它不会妨碍您完成工作,并且可以最小化麻烦,请务必尝试一下。
好的,关于资源。首先要做的是启动 Emacs 并键入 Ctrl-h t。这将为您提供“实践”教程,帮助您学习编辑器基础知识。完成后,您可以阅读位于http://www.gnu.org/software/emacs/manual/html_node/emacs/index.html 的详细手册。然后,您可以阅读 Emacs Lisp 教程 并根据自己的意愿扩展和定制 Emacs。 EmacsWiki 是一个提供技巧,诀窍和文档的好地方,Emacs IRC 渠道 也是如此。
祝您一切顺利!

我还想补充一点,现在在StackExchange上有一个迅速发展的Emacs网络站点 - Sean Allred
1
对于一个被接受的答案,它并没有给我关于如何在emacs中开始web开发的实际好建议。比如说,我应该查看flymake/flycheck吗?MELPA中有哪些可以帮助我进行React开发的工具?它提供代码补全功能吗?或者在使用emacs进行web开发时,片段是最先进的技术吗? - mrk

18

如果你不喜欢这个界面,学习它就不值得。

问题不在于是否值得学习Emacs,而在于你想不想学习这个界面。

如果你想学习,那么它就值得。如果你不想学习,那么它就不值得。

更具体地说,我将用一系列链接回答你的广泛问题,这些链接可以从Emacs维基上获取:

  • http://www.emacswiki.org/emacs/FlymakeJavaScript
  • :这是一个用于 JavaScript 的 Emacs 模式。
  • http://www.emacswiki.org/emacs/PythonMode
  • :这是一个用于 Python 的 Emacs 模式。
  • http://www.emacswiki.org/emacs/PythonProgrammingInEmacs
  • :这是一个有关在 Emacs 中使用 Python 进行编程的页面。
  • http://www.emacswiki.org/emacs/CategoryProgrammerUtils
  • :这里列出了一些有用的程序员工具,包括 Emacs 模式和其他工具。

    许多人喜欢用 Emacs 来进行 Web 开发。以上只是一些人们日常使用的模式的示例。

    它适合你吗?我不知道。

    它比编辑器 X 或 IDE Y 更好吗?对于某些事情是的,对于其他事情则不是。

    代码自动完成功能非常棒!(除非不是)这取决于你想要什么,涉及到哪些编程语言等等。

    人们使用 vi,人们使用 Emacs,人们使用记事本,人们使用各种文本编辑器

    注意:提出模糊不清的问题会得到模糊不清的答案。


    4

    可以说,最终的Web编程模式是nxhtml mode。您可以先看一下它。您还可以查看一些丰富的预设Emacs配置,如Emacs Starter KitEmacs Dev Kit

    Emacs中的PHP和Python模式并不是特别好,但相当不错。JavaScript模式肯定很棒。像autocomplete mode这样的包几乎在任何地方都提供良好的补全功能。

    虽然我有偏见,但我认为,如果您花费一些时间探索Emacs,您会发现它会提高您的生产力。


    1
    Steve Yegge(js2-mode)的新JavaScript模式实际上非常不错。 - Noufal Ibrahim
    1
    这就是我所说的“绝对棒”的意思 :-) - Bozhidar Batsov
    我读得太快了,把“不是特别好”的和“JavaScript模式”放在一起了 :) - Noufal Ibrahim

    1

    正如其他帖子所暗示的那样,一切都取决于你想从中获得什么。如果你想感觉到自己在emacs中实现的自定义与你编写的实际代码一样好,那么没问题... Emacs很棒 ;)

    (在任何人责骂我之前,我必须说,对于'nix C/C++编辑,emacs是我最喜欢的编辑器,但这不是OP在这里寻找的东西;))

    在我寻找最适合PHP、Python、Javascript等的最高效编辑器的过程中,我最喜欢的是Komodo Edit。它不仅具有代码完成功能,还有跳转到定义(以及许多其他完整功能IDE应该具备的功能),真正接近于Visual Studio用于操作系统脚本开发的工具。哦,而且它是免费的。


    0
    说实话,我已经做好了防范腐烂水果/蔬菜袭击的准备,我最近成为了NetBeans IDE在Web开发中的粉丝。特别是在PHP方面。
    但是回答你的问题:只有当它对你有价值时才值得去做。抱歉,模糊的问题得到模糊的答案。;)

    0

    如果您正在使用可以进行Web开发的现有IDE,则请使用该IDE。 如果没有,那么Emacs是值得学习的文本编辑器,可用于文本编辑或在没有良好IDE的语言中进行编程。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接