Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 值得花时间学习使用Emacs吗?_Vim_Emacs_Editor_Text Editor - Fatal编程技术网

Vim 值得花时间学习使用Emacs吗?

Vim 值得花时间学习使用Emacs吗?,vim,emacs,editor,text-editor,Vim,Emacs,Editor,Text Editor,首先:我不想发动一场宗教战争 在我记忆中,我一直在使用vi,几次尝试使用Emacs时,我都迷失了方向,很快就放弃了。然而,很多人发现Emacs非常强大。它的可编程性有点传奇色彩。我主要从事Solaris+Java开发,我想问一个简单的问题:如果我花时间研究Emacs,我的生产率会提高吗?它通过Vim提供的功能是否会在合理的时间范围内通过生产力的提高得到回报 重复:我不想要一个“我的编辑比你的好”的答案。我只是想要一个肯定或否定的答案,看看是否值得投入时间。我的生产力真的会提高吗?否(我两者都用过

首先:我不想发动一场宗教战争

在我记忆中,我一直在使用vi,几次尝试使用Emacs时,我都迷失了方向,很快就放弃了。然而,很多人发现Emacs非常强大。它的可编程性有点传奇色彩。我主要从事Solaris+Java开发,我想问一个简单的问题:如果我花时间研究Emacs,我的生产率会提高吗?它通过Vim提供的功能是否会在合理的时间范围内通过生产力的提高得到回报


重复:我不想要一个“我的编辑比你的好”的答案。我只是想要一个肯定或否定的答案,看看是否值得投入时间。我的生产力真的会提高吗?

否(我两者都用过)。

我不想要一场圣战,但请回答一个非常主观的问题,回答是/否

是的,由于功能强大,您可能会看到生产力的提高


不,您不会看到生产力的提高,因为emacs中使用的模式和隐喻可能与您的大脑不一致。

emacs文档是一片森林。当我意识到Vim的文档是多么的有条理,许多特性是多么的易读时,我从Emacs来到了Vim。我不知道Emacs专家的出路是什么,但我要警告你,学习在这方面做任何有用的事情都需要很长时间,而且不会让你在nethack方面做得更好。坚持维姆


是一个更好的用于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教程,然后使用它为一个上午或一天编写代码,主要依靠帮助。如果你仍然不喜欢你所看到的,就和维姆呆在一起。无论编辑器给您带来了什么,您对该工具的熟悉程度和知识都将是影响您工作效率的最重要因素。

如果您决定花时间编写文本编辑器,您的工作效率将提高。在这两个编辑器中,emacs提供了更好的框架或持续定制。如果您不编写文本编辑器,只需使用舒适的工具即可。

我喜欢emacs并每天使用它

也就是说,我不认为学习it的成本会被未来的生产率提高所弥补


如果你正在编写Java,你需要一个好的IDE。Emacs朝着成为一员的方向走了很长一段路,但让我们面对现实吧,IDEA等人轻而易举地击败了它。(emacs可能启发了很多IDE,但那是另一个故事)。

在不寻求宗教战争的同一条路线上(如果你觉得必须的话,请继续投票否决我),为什么你觉得vi的唯一选择是emacs?是您开发的操作系统,还是您探索的选项


Java开发环境现在享受着一些最好的IDE(免费和付费),如果在代码编辑和重构支持方面不是最好的话。IntelliJ IDEA甚至有一个vi插件,可以帮助您感觉更自在,例如(不确定Eclipse是否有类似的东西可用)。虽然更换工具确实意味着一个学习曲线,但如果这一飞跃足够大,那么花在这方面的时间可能是值得的。

如果您愿意学习并定制它以适应您的需要,Emacs将带来生产力的提高
C-x (       start remembering keystrokes
C-x )       stop remembering keystrokes
C-x e       replay the remembered keystrokes
:g/^<a/s/>/ target="_blank">/
1.  C-x (
2.  M-C-s <a\>
3.  C-b
4.  C-s >
5.  C-b
6.   target="_blank"
7.  C-x )
8.  C-u 10000 C-x e
1.  start remembering keystrokes
2.  regex search for <a.  Note that the "\>" after the "a" is not HTML.  It's emacs regex notation for end-of-word.
3.  back up one character - as a side-effect this gets you out of search mode
4.  search for the next ">"
5.  back up over the ">"
6.  enter space as an attribute-delimiter followed by the target="_blank" attribute
7.  stop remembering keystrokes
8.  replay the remembered keystrokes 10,000 times or until the search fails