值得花时间学习使用Emacs吗?
就在前面:我不想发动宗教战争。
我使用vi的时间已经很久了,而且有几次尝试使用Emacs时,我已经迷失了方向,以至于我迅速放弃了。但是,许多人发现Emacs非常强大。它的可编程性有点传奇。我主要从事Solaris + Java开发,我想问一个简单的问题:如果我花时间在Emacs上,我的工作效率会提高吗?它在Vim上提供的功能是否会在合理的时间内回报生产率的提高?
重复:我不希望"我的编辑器比你的编辑器好"的答案。对于是否值得花费时间,我只想是或者否的答案。我的生产力会真正提高吗?
解决方案
回答
不(而且我都用过)。
回答
我不想进行一场圣战,但请回答是/否,回答一个主观问题。
是的,由于功能强大,我们可能会看到生产率提高。
不,我们不会看到生产力的提高,因为emacs中使用的模式和隐喻可能与大脑不一致。
回答
Emacs文档是一个森林。我从Emacs来到Vim,当时我意识到Vim的文档组织得井井有条,并且许多功能都令人讨厌。我不知道Emacs专家会遇到什么问题,但是我会警告我们,学习在其中做任何有用的事情都需要很长时间,并且不会使我们在nethack上变得更好。坚持使用Vim。
Textmate是Mac上更好的Emacs,尽管使用Solaris并不能。 Eclipse很酷,并且有很多插件。
回答
我更喜欢emacs而不是vi,但是我都觉得舒服。
我们可以在emacs中做一些事情,使其比vi更强大,但并非所有这些都与编程有关。 (我们可以从vi内发送电子邮件或者阅读新闻吗?否,但是谁在乎?)如果我们对lisp感到满意(我不满意),则可以编写添加组件,模式和内容来充实自己的生活比较容易,但这很可能是语法着色和大括号匹配以及类似的吸引人的地方。
我现在将不再闲逛。使用emacs会提高生产率吗?不。
更新:请参阅下面的我的评论。自从发布此文章以来,我发现使用emacs的方法比使用vi的方法更有效率。
回答
我想进一步研究emacs,但是我不能长时间使用它。它伤了我的手。我做错什么了吗?
回答
根据编码方式,我们可能会看到生产率的提高。对于背景,我也是vim的长期用户,但是大约2年前我学习了emacs,现在可以互换使用它们了。
使我真正学习emacs的要点是它具有一次打开大量文件并在它们之间轻松切换的有用功能。我正在介绍一种功能,该功能添加并涉及了许多类。 (这是C ++,因此每个类通常有两个文件。)由于我仍在确定接口,因此当我意识到需要更改另一个文件时,通常将在更新一个文件的过程中。
使用gvim,最简单的方法是为每个文件打开一个新窗口,该窗口开始变得笨拙。但是,使用Emacs,可以在同一窗口(Ctrl-x,Ctrl-f)中打开新文件很简单。一旦Emacs打开了文件,就很容易在打开的缓冲区(Ctrl-x,Ctrl-b)之间来回切换。
更进一步,单个emacs会话可能会打开许多窗口,因此,除了垂直拆分窗口外,我还可以决定在不中断文件工作的情况下,打开该文件旁边的另一个窗口,从而使我可以有效地并排工作:同时仍将每个窗口保持在默认的80个字符的宽度。
我发现在vim中还有一些更容易的东西(例如块选择模式,简单的宏录制,差异模式),以及在Emacs中更容易的东西(行对齐,文件/缓冲区管理,窗口/屏幕管理)。因此,我发现自己在这两者之间交替(有时同时使用两者),这取决于我预期的编辑任务。
如果我们仍然不确定,建议我们尝试一下。在Emacs教程中运行,然后在很大程度上依靠帮助的情况下,使用它来编写代码,每天早上或者一天。如果我们仍然不喜欢所看到的内容,请继续使用vim。不管编辑器带来了什么,到目前为止,我们对该工具的熟悉程度和知识将是我们提高生产力的最重要因素。
回答
如果我们决定花时间为文本编辑器编程,那么工作效率将会提高。在这两个编辑器中,emacs提供了更好的框架或者不断的定制。如果我们不对文本编辑器进行编程,那么请保持舒适。
回答
我爱emacs,每天都在使用。
就是说,我不认为学习的成本会被生产力的提高所弥补。
如果我们正在编程Java,则需要一个良好的IDE。 Emacs朝着成为一个统一的方向走了一条公平的道路,但让我们面对现实吧,IDEA等人击败了它。 (emacs可能启发了很多这些IDE,但这是另一回事了)。
回答
沿着不寻求宗教战争的思路(但如果需要,请继续反对我),为什么我们觉得vi的唯一选择是emacs?是我们开发的操作系统,还是只是我们探索的选项?
目前,Java开发环境拥有一些最好的IDE(免费和付费),甚至在代码编辑和重构支持方面也不是最好的。IntelliJIDEA甚至还提供了一个vi插件,可以感到宾至如归,例如(不确定是否有类似的功能可用于Eclipse)。虽然更换工具确实意味着学习曲线,但如果飞跃足够大,花时间去做可能是值得的。
回答
如果我们愿意学习和自定义Emacs以满足需求,它将提高工作效率。大多数人不是。为了提高工作效率,我们必须使用该工具进行简单的编辑,而大多数人从未超越简单的编辑。
这是一个快速测试:我们是否已自定义窗口管理器以提高环境效率(量身定制以满足需求)?如果为"否",则可能无法通过学习emacs获得投资回报。
话虽这么说,但是如果我们正在开发Java,则Eclipse是标准答案,因此问题很无聊。
回答
vi是一把菜刀。
vim是一把非常好,锋利,平衡的厨师刀。
Emacs是轻型军刀。
大多数时候,我的工作要求我切蔬菜。有时,我必须承担整个机器人大军的重任。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
我使用Emacs已有20年了。我现在使用名为" It's All Text"的小部件输入Emacs,使我可以在Firefox的文本框中输入和输出文本。我在Emacs中可以走得很快。没有它,我的工作效率会大大降低。
这是有争议的,但是我也认为学习Emacs可以教给我们关于编程的惊人知识。
回答
[免责声明:就我个人而言,我更喜欢Vim。免责声明免责声明:请继续阅读。]
Vim的优点在于:通过将动作和动作分离开来,并为复杂的重复操作提供便利,我们只需短短的按键操作就可以执行功能强大的编辑操作。在正常的编辑过程中,我们可以轻松地在Vim中执行某些操作,这将需要我们深入到Emacs中的脚本编写。而且,我们使用的大多数功能都是开箱即用的,因此即使我们具有广泛的.vimrc
自定义设置,我们也有可能可以在任何Vim安装中高效地工作。
Emacs的出色之处在于:通过将其所有UI概念直接映射到Elisp中的基本构造和概念,可以很容易地在全球范围内针对特定类型的文件或者环境引入功能,从而使Emacs变得像基于文本的结构一样Excel的可编程形式。假设我们将花费大量时间根据个人需求和喜好自定义环境。当然,Emacs尽最大努力使我们可以轻松地留在一个环境中,以完成我们可能想做的所有事情。
最终,两者都不是上乘的。他们提供不同的风格,并且根据个人喜好,一种或者另一种将适合个人需求和更好的思维方式。当然,了解两者(以及更多的编辑器)总是有帮助的。但是我们将不会以这种方式提高生产力。
回答
学习Emacs的一个好理由是因为其他程序也使用Emacs键盘绑定。例如,我们可以在bash提示符下使用Emacs键盘绑定,或者使用GNU readline进行任何其他操作。最好学习Emacs中的基本动作和单词/行删除以及撤消/重做和弦,以便可以在其他程序中使用它们。即使我们不再使用Emacs,使用其他工具也可以提高生产率。
我知道Vim和Emacs,而且Vim更适合我的大脑和习惯。但是其他人也对Emacs持相同观点。除非我们尝试,否则我们永远不会自己知道。不需要花太多时间就可以很好地学习Emacs,看看我们是否会喜欢它。
回答
我们输入的速度有多快?如果我们狩猎和啄食,那么emacs不适合我们。如果速度很快,则可以不必一直抓住鼠标。
回答
我曾两次尝试学习Emacs。它只是不适合我的大脑运作,因此我不使用它。
Emacs(或者vim)并没有明显优于vim(或者Emacs)。两者都有很多选择,可以使他们做得很棒。我毫不怀疑,我们可以在Emacs中完成任何操作,也可以在Vim中完成操作,但这不是标准的。
试试Emacs。看看是否更合适。这是不输的情况。
回答
我真的没有理由切换。我使用vi已有很长时间了,对此我感到很满意。大约每六个月,我会安装emacs进行尝试,然后迅速切换回去。是的,关于vi我有一些我更喜欢的东西,但我从未坚持使用它的主要原因是因为在我已经知道一个非常有能力的编辑器时花时间完全学习另一个编辑器是不值得的。
我想起了这本过时的研究。
我认为,如果我们已经精通vi,那么SLIME就是切换到emacs的唯一原因。
回答
vim和emacs,它们是功能最强大的编辑器,并且已有相当长的历史了。
如果我们真的很了解,我怀疑我们会在此过程中获得这么多...
但是,考虑一下自从什么插件可用以来,总是一个好主意。
几个新的插件可以为生产力带来奇迹。
/约翰
回答
由于vi / Vim和Emacs在可以做什么或者不能做什么方面非常接近,因此这两个编辑器的工作效率来自使用它们的经验。
我认为,作为一名程序员,开始使用Emacs不会花很长时间。别人只能说那么多,我们必须尝试一下才能自己知道。
至于我,我都使用。这就像在战争中使用不止一种武器,在适当的情况下使用正确的武器。 ;)
回答
Will my productivity really increase?
对于前几天/几周,绝对不是。
在我们每次都要确定要编辑的内容时,不必再阅读本教程之后。
Emacs比vim更"强大",它的脚本引擎更加灵活,并且围绕emacs构建了更多的脚本,模式等。
就是说,事实恰恰相反。如果我们花费相同的时间来提高对vim的了解,我们可能会同样高效。
也许不是像我说的那样,vim可以更快地编辑文件,emacs可以胜任其他工作(同样,我个人会说" flymake-mode"之类的东西,VCS绑定比相当于vim)
回答
我使用Vim已有10年,直到2年前才开始研究Emacs。我对我的生产率曲线随着时间的变化有一个相当新鲜的回忆。
我的观点都是有条件的,具体取决于长处和经验。
如果我们使用Unix和命令行的时间足够长,以至于它们在Shell上起作用时熟悉Ca,Ce,Cn,Cp,Ck,Cy等,那么过渡到使用这些相同的绑定将花费很长时间(默认值)。我最近发现XCode也使用这些绑定。
如果我们对始终运行的编辑器感到满意,并且喜欢使用缓冲区(就像浏览器选项卡一样),并因此而驻留在应用程序中(就像我们在浏览器中使用Web2.0应用程序一样),那么Emacs可能会立即提高生产力。
如果我们通常在许多相关文件的项目中工作,那么这种持久性在维护该缓冲区的上下文方面会带来一些额外的好处。每个缓冲区都在其打开的文件中关联,从而可以方便地为项目使用各种提高生产力的工具(例如grep-find,eshell,run-python和slime)。尽管是临时性的并且根据配置进行了个性化设置,但文本完成,yasnippet等却开始看起来像IDE一样很小。这与ECB等更为文明的类似于Emacs IDE的服务不同。
最初约一周的时间里,我不断按Esc-Esc-Esc-Esc键输入" jjjkkk",对我的工作效率产生了很大的影响。接下来的一周,我谨慎地开始使用正确的导航键。然后我发现了配置文件...老实说,如果我从一开始就拥有Emacs入门套件,我会说我的生产力在3-4周内慢慢恢复到了同等水平,但是我确实不喜欢配置文件。但是,我的一位同事刚刚从vim过渡到了emacs,他只是抓住了入门工具包,就在路上。在第一周,他似乎很舒服,享受着所有的惊喜(这种感觉可能会持续十年)。
最后,如果我们犯了错误,我们将立即从圆形的kill / yank环和undo环中获得生产力(和信心)。我个人也是特定区域撤消的粉丝。
我的简短答案是,是的,要花3到4周的时间来减少生产力的损失,以学习Emacs。即使我们决定使用简化的unix实用程序组合而不是Emacs进行开发,我们也会从中得到除编辑器之外广泛应用的知识。
回答
我同意艾伦·斯托姆(Alan Storm)的观点:"因为Emacs中使用的模式和隐喻可能与大脑不一致"
这是一个非常重要的因素。不同的大脑对不同的界面会有不同的适应。
我非常喜欢Emacs的一些主要且易于使用的功能,我可以将其视为生产力增强器:
1.每个剪切/复制的" yank-pop"功能都保存到堆栈中,以便以后可以选择要粘贴的内容(不知道vi / Vim是否具有此功能,但大多数Java IDE都没有)
2. Ctrl键导航映射,使我们可以导航文件,而无需移开手来使用箭头键。 (在其他编辑器中进行键绑定当然会有所帮助)
3.无论基于GUI还是基于文本(Java IDE在大多数平台上也都可用,但仅在GUI模式下可用),几乎在所有平台上都可以使用(当然,在vi / Vim中也是如此),而Emacs通常更广泛使用的BSD / * nix / Linux / Mac系统
4.我更喜欢编辑器,直到我需要它为止,不要打扰。Emacs的斯巴达式显示器迫使我在键入之前进行思考。
5. Emacs中的基本导航键在Mac OS上普遍可用,我可以在终端机,mac mail等中使用这些键。
最终,如果Emacs的理念吸引我们,我们将付出更多的努力来学习它。它将奖励我们。
回答
我对Vim感到非常满意,但是一旦听说组织模式,便开始学习Emacs。
org-mode可能是学习Emacs的重要原因之一。