Emacs VS Vim…战斗!

对于那些不知道的人,多年来,Vim的支持者和Emacs的支持者之间一直在进行激烈的辩论(战争),这些并不是唯一的竞争者,也有Nano的支持者也参与其中等等,但是在我看来,这些是最大的竞争者。

可能有一些人(讽刺者)仍然喜欢使用ed。 对于那些不喜欢的人,我挑战您在一天之内不用扔键盘就可以使用它。

而且,如果您遇到某个告诉您Vim和Emacs落后的人,请向他们提出同样的挑战。

Vim

该工具在校正后的手中是一个功能非常强大的文本编辑器,在错误的手中是一个非常有效的随机字符生成器(退出FYI的:wq )。

背景

顾名思义,Vim(Vi IMproved)是对文本编辑器Vi的改进,Vi是为Unix操作系统设计的编辑器。 最初发布于1991年,由于它的轻巧而吸引人。 它在技术专家中很流行,因为它默认安装在大多数基于Unix的操作系统上,并且可以通过命令行使用。

第一印象

看到使用Vim时,我想到的第一个念头是“这看起来很复杂”,似乎是某种我不理解的神秘巫术。 下一个想法是“天哪,这很有效!”。

几年前,当我与一个由Vim发誓的同行开发人员结对时,我首先选择了Vim,他会使用所有令人屏息的快捷方式在文件中四处走动,这比我使用任何图形文本编辑器的速度都要快。

https://vim-adventures.com

对我来说,最艰巨的部分是当我不记得快捷方式时如何有效地编辑文本,因此他为我指出了一个https://vim-adventures.com/在线游戏,您可以迭代地学习快捷方式,对于那些想使用Vim但需要解释几层复杂性的人,我会推荐这样做。

一旦掌握了基础知识,这时,我正在以通常的十分之一的速度编辑文件,但是我正在学习。

直觉性

对我来说,一旦我掌握了基本功能,控件便合乎逻辑并且很有意义,您就有了像w这样的移动键,它将使您向前移动一个单词。 您可以通过在数字前加上数字来重复任何内容,以便2w移动2个单词。 而且命令可以将移动键作为参数,所以d是删除,因此d2w将删除2个单词,直观吧? 学习了这些内容之后,您就可以开始简化所做的一切。

然后,您可以将它们串在一起并使用宏处理大型文件。

配套

接下来,向我介绍了可用的软件包,主要是按照Sensei的配置进行操作,并镜像了他所拥有的软件包,然后逐一添加它们并将其集成到我的工作流程中。 从NerdTree开始,这是一个可帮助您遍历代码库的软件包,如果没有此类内容,则每次需要切换文件或记住相对路径时都需要退出。

这些软件包是轻量级的,并且当您拥有像Vundle这样的管理器时,易于安装。 就像编辑.vimrc并运行:PluginInstall一样简单。 从主题到git集成,以及将Vim转换为.Net IDE的方法,选择是巨大的。 很多软件包来自Pathogen的开发者Tim Pope,他是Vim的另一个受欢迎的软件包管理器,我建议您查看他的仓库,看看有什么用。

优点:

  • 即插即用-您可以轻松地拿起任何人的Vim实例并知道如何使用它,存在他们可能重新映射了几件事的风险,但是您基本上可以立即使用它。
  • 轻巧—作为Ubuntu软件包,Vim的基本安装为2.8 MB(大约),与Emacs的100MB(大约)相比是很小的。
  • 可自定义-大型的程序包库意味着您可以根据自己的需要定制版本。

观测值(可以看作是专业人士,可以看作是骗局)

  • 需要从头开始构建-基本安装具有少量功能,无法进行基本的文本编辑,您需要自己构建,最终最终需要拥有一个完全适合您的Vim实例。

缺点

  • 陡峭的学习曲线-刚开始时很难进行基本的文本编辑,除非您知道如何高级使用它,否则您将无法有效地进行编辑。

对于那些对此感兴趣的人是我的.vimrc (略过时)。

埃马克斯

被描述为“一个可扩展的,可定制的,自由/自由的文本编辑器-以及更多。”强调“更多”,因为Emacs确实是一款多功能的软件。 由于可以使用Lisp轻松进行扩展,因此可以使用多种软件包。

背景

Emacs,名称来自(Editor MACroS),是一个文本编辑器,每个任务都有不同的“模式”。 它全部使用Lisp编写,因此速度很快,并通过快捷方式和宏提高了生产率。 尽管Vim支持文本编辑以外的其他任务,但Emacs似乎为其他操作提供了更大的工具集。

第一印象

通过对Vim的研究,我听说了Emacs,我已经完全被Vim提高生产力的想法所推销,由于我的强烈偏见,他将Emacs解雇了。 尽管我仍然下载它并对其进行了短暂的操作,但立即注意到它是如何开箱即用地打包的(如果您决定,这是一件好事)。 对我来说,这很可怕,因为对于Vim来说,我知道如何使用所有软件包,因为我已经安装了所有软件包并逐一了解了它们。

使用Vim大约2年后,我决定给它一个适当的机会,听说Spacemacs是一个很好的起点,并且对于防止RSI很有好处,它将焦点从Alt更改为Spacebar,这少了一个应变达到。 学习Emacs的邪恶模式(像VIm这样的eVIl模式)是我给予它更好的机会(并立即使用它)的另一个重要因素,因为我可以利用Vim的文本编辑优势,并将其与Emacs。

直觉性

我以前在Vim上的经验是一个主要优点,因此我不能谈论从头开始学习Emacs,但是仍然有一个学习曲线,例如如何使用MELPA管理软件包以及如何使用HELM和Dired导航文件。

学习使用Emacs似乎要容易得多,尤其是在宏的上下文中,因为当您开始调用Emacs时,会提示您下一步可以使用什么键。

在浏览了几次之后,您无需看就可以进行控制,对我来说,这是对Vim的改进,因为您无需搜索如何使用某些软件包。 另外,还有一个搜索命令Alt-xSPC SPC (用于Spacemacs),它不仅使您可以搜索可用的命令,而且还可以显示下一次要使用的键盘绑定。

配套

有许多与Emacs兼容的软件包(层),Spacemacs具有从音乐播放到源代码控制的许多层。 通过相应地编辑.spacemacs文件,可以非常容易地安装它们,这将安装一堆与该层有关的软件包。

我最常用的图层是:

  • git:安装magit,用于VCS管理
  • 便捷:方便快速记笔记(我的Google云端硬盘中有便捷的文件夹)
  • 掌舵:用于快速查找文件

优点:

  • 多功能性—如果您想要一个文本编辑器,基本上可以进行文本编辑,以及其他所有功能,那么我建议使用Emacs,如果配置正确,则实际上不需要离开Emacs。
  • 宏-也许我最喜欢Emacs的部分是宏,它们是逻辑的,并且您可以找到下一步的位置图。

观测值(可以看作是专业人士,可以看作是骗局)

  • 默认情况下功能丰富-在首次安装Emacs时,无需安装其他软件包就可以轻松使用很多工具,特别是如果选择Spacemacs。
  • 一开始令人生畏-庞大的功能使您思考“我从哪里开始?”

缺点

  • 陡峭的学习曲线-尽管对我而言,使用Vim已有知识比较容易,但是我认为即使使用了令人惊叹的宏框架,也仍然很难。

结论

要回答这个问题,我最卑鄙的观点是Emacs居于首位,其原因在于它可以与Vim一样完成甚至更多。 因此,我很可能继续使用Emacs。

另一方面,如果我以更加客观的心态来回答这个问题,并且不那么固执己见,那么我将得到(极其烦人的)答案-由您决定。 我认为,如果您只是想以一种快速,精简和自定义的方式来编辑文件,Vim是您的理想选择。 但是,如果您想用更快,更优雅的解决方案替换尽可能多的当前工作流程,那么我建议使用Emacs,因为从这里您可以编辑文件,更改音乐,保留财务分类帐…几乎所有内容都可以由Emacs完成。