我正在寻找学习Vim或Emacs的巧妙方法

我是一个非常开心的Eclipse用户(我主要是用PHP和Python开发的),但是我find了答案: “Vim / Emacs比GUI文本编辑器提供的具体生产力提高了多less? 有趣的是,我也希望尝试Vim或Emacs ,看看他们是否会成为我的更好的解决scheme。

我一般认为,Vim和Emacs不是那种“玩弄它”的编辑器。 我有一个印象,你必须投入一些时间和精力来“研究”一下,然后才能从他们的权力中受益。

所以,我有两个关于社区的问题:

  1. 在链接线程中,响应者基本上通过评论Vim来回答(经常提到:“我确定Emacs具有相同的”)。 谷歌的趋势似乎表明Vim是两者之间的主要采用,但我的第一个问题是: 知道我没有任何经验,在任何两个,我使用和开发(主要是PHP和Python)在GNU / Linux系统(Ubuntu, Arch Linux ),有没有两个代表更好的select开始? (要清楚的是:我的问题不是关于编辑的质量问题,而是关于在我的情况下学习策略性的更好的问题)。

  2. 你会给我如何学习使用它/他们的build议? 我知道这是一个广泛的问题,但是这是故意的。 看看这个答案 (无关的话题),我想找一种types的信息/回答风格的想法[但是不要以这种方式回答…任何forms的任何贡献都将受到欢迎!]

编辑(select“接受的答案”)

我刚刚选出了一个接受的答案,但我想对所有分享他们的经验和build议的人说“谢谢”, 几乎所有这些答案都对我有用。 线程明确超出了我的预期! 谢谢! 🙂

我build议检查两者是值得的,因为其他答案已经涵盖的各种原因,或“Emacs vs vim vs XY”线程。

不过,如果你不得不select其中一个,我会selectvim,因为一件事:

可用性

Vi(m)的优点是它几乎在任何* nix系统上默认安装(不仅可用)。 所以无论是你的系统还是其他人,或者你是否允许修改,你最喜欢的文本编辑器和朋友都在等着你。

一旦你知道 vi(m),在ssh进入机器并需要使用文本(通过文件导航,编辑等等)的情况下,感觉真棒。 你会感觉像一个国王。 我记得好几次,因为nano或者pico都没有安装,所以我几乎吓坏了,我不得不使用“这个丑陋的野兽vi”,当我开始打字的时候,做出了不可预知的事情(因为我不是插入模式,甚至不知道那是什么),当我很乐意用googlesearch“:wq!” 让我回到地狱。 现在我可以回头微笑一下。

我有一般的感觉,vim和emacs不是你通过“玩”来学习的那种编辑器

Vim和Emacs肯定是你“边做边学 ”的编辑器。

当然,包括这些高度科学的文本编辑器学习曲线图的问题叫喊=)

一些常见的文本编辑器的经典学习曲线

一开始Vim可能会有些困难,因为它的模式编辑起初可能感觉不太熟悉。 我认为动力是关键。 文章“ 为什么,哦,为什么,那些#?@ nutheads使用vi? ”我认为很好地解释了这些优点。 在我看来,确实值得一试,即使学习曲线比其他编辑更陡峭,听起来像是你带来了必要的动力。

回到边干边学

我希望我会做的第一次:

检查Vimtutor 。 这是一个互动的教程,通过展示它的基本命令以及如何编写vim来演示vim的强大function。 只需在terminal中inputvimtutor

在过去几次尝试使用vim进行编辑之后,这帮助我真正“ 得到它 ”。 该教程可以大大简化学习曲线,因为它解释了命令,使您能够实际执行它们,从而成为一种习惯。 相比于因为感觉残疾而感到沮丧,这真的是有所作为。 使用vimtutor你也会看到模式编辑的好处,而不是战斗或忽略它,你会接受它,因为你已经体验到了第一手的优势。 我想这一切都很难自己学习。 所以这30分钟是相当值得的。

我有一般的感觉,vim和emacs不是你通过“玩”来学习的那种编辑器。

我的经验与emacs其实是完全相反的。 我试着通过教程,但似乎没有太大的帮助。 我最终学习的方式是用参考卡 ,只是强迫自己在我的代码上使用emacs,直到我知道它正确*。 然后再一次,我也有一个螺丝松动。 你的milage可能会有所不同。 在禁止的地方提供无效 你明白了。

我记得在另外一个地方阅读的另外一个build议是,在编码时尝试写下你想要学习的大约10个命令的列表并保存。 一旦你掌握了这些命令,再添加10个列表。 继续这样做,直到你有足够大的编辑器承诺内存。

*请注意,链接的参考卡已过期。 如果你是谷歌,你可以得到一个更新的参考卡。

知道我在这两者中没有任何经验,并且我在GNU / linux系统(ubuntu,archlinux)上使用和开发(主要是PHP和Python),是否有任何两个代表更好的选项从…开始?

我是一个emacs家伙,所以我的意见应该是显而易见的。 也就是说,你可能最好尝试一个你认识的更多的人似乎使用的那个。 有一个经验与emacs的人(我会认为vim)是一个很大的帮助。

如果你不知道谁使用任何一个,select你觉得最漂亮或最酷的名字。 你不会知道哪一个你会喜欢,所以你不妨select任意。

对于vim尝试vimtutor

在Windows开发多年后我开始使用Linux时,我来到了Vim,不得不通过ssh在远程系统上做很多工作。 头几个星期讨厌它。 之后,我不能没有它。

可能最好的方法是在简单模式下使用Vim([g] vim -y),大多数安装都有一个名为evim的快捷方式。 这在默认情况下在插入模式下运行vim,并将键重新映射到通常的Windows(ctrl-S保存,ctrl-X剪切等)。 然后,您可以像普通的Windowsy编辑器一样使用它,但仍然可以使用Vim的function。

也有Vim +的一些脚本,使它更像Windows编辑器。

我开始使用evim和奶油,但发现我逐渐过渡到使用100%vim。

另外,如果你使用gvim,那么大多数的function也可以通过菜单来获得,你可以看到相同function的击键。

另外阅读文档 – 有各种方面的广泛的帮助文件。 我不时浏览他们,并find新的东西。

使用VIM,我发现下面的快速参考卡非常有帮助,特别是对于我不是每天都做的东西: VIM QuickReference

对于emacs,你应该阅读GNU Emacs手册 。 不要试图一次完成所有的事情。 从基本的东西开始,然后继续使用function更强大的function,一旦你对轻松的东西感到满意。

前一段时间,我决定在Eclipse旁学习vim,因为它具有强大的文本编辑,search和导航function。 但是 – 同时,我喜欢Eclipse的项目处理,代码完成,重构和debuggingfunction,我不想丢失它们。

现在我使用一个名为vrapper的Eclipse插件,它提供了几乎所有的 Eclipse内部vim的基本function,而不会丢失任何Eclipsefunction。 当然,它不是一个全function的vim,但它给了我'预期'的生产力增益(运动,点运算符,注册和标记)。 另外,这个插件可以被认为是vim的“试用”版本,你可以在你最熟悉的环境中学习所有基本的和一些先进的东西。

还有另一个有趣的方法叫做eclim 。 Eclim将Eclipse与vim集成在vim中,因此您可以在vim中使用Eclipse中的许多function。

为了学习vim的基础知识, 这个graphics化的cheatsheet帮了我很多。

我会去Emacs。 明确的命令名称将使您的任务更容易。 我有多年的vi经验之后,转而使用emacs,并且从不回头。 先用教程去。 在irc的#emacs上闲逛,人们很乐意为您提供更多实时帮助。

我对学习emacs的build议是要明白,一切都是通过一个连接(绑定)你所做的关键笔划的命令(用elisp编写)完成的。 emacs的强大之处在于能够编写新的命令,并使用未绑定到键的命令(有太多的命令将每个命令绑定到一个命令上),当然还有读取和修改已经存在的命令emacs的。

接下来学习如何使用帮助键以及如何制作键绑定列表,然后如何search相关命令(apropos)并查看它们是否已绑定。

准备把学习转移到emacs手册(帮助,阅读手册,Emacs手册)。

如果你了解Python,那么支持Vim的一个理由是你可以用Python编写Vim脚本。 请参阅:h python 。 Emacs要求你学习elisp。

我发现自己很喜欢用Vim来编写像Ruby / Perl / Python / PHP这样的脚本语言,而用Emacs编写更具交互性的语言(本质上是Lisp)。 如果您使用交互式Python shell开发Python代码,Emacs可能会很好,因为您可以将Python shellembedded到Emacs中。 如果你编写代码并从命令行运行它,Vim可以通过:make轻松处理:make:!

我真的build议你学习,并select你喜欢更好的。 他们都值得了解。

哇,vi / vim vs emacs,多么诱惑…

从vi用户的angular度来看…

  • 一直在那
    vi是关于每个有史以来发布的unix系统,默认安装,并可用于Win
  • 可以从RSI中拯救你
    vi对于所有的东西都使用家庭行键,像控制和meta这样的修饰词只用于很less被调用的function,甚至shift-key的使用也是适度的。 这可能只是一个幸运的事故,但不要嘲笑RSI。 这可能会发生在任何人身上,这是非常痛苦的,这可能是职业生涯的结局,而且很难对待。
  • 立即启动
    在过去,这是emacs的一个巨大的优势。 Emacs用户只需启动一次,然后在emacs中的任何地方导航。 今天它开始更快,但在vi中,完全合理的是在每个编译或testing周期中完全退出。
  • 有一个真棒线模式
    vi中的行模式向后兼容原来的Unix ed(1)程序,一个只有行模式的编辑器。 也就是说,vi的正则expression式replace引擎 – 行编辑器本身就是一个编辑器。
  • 轻松脚本
    有什么你想要做的每一个.whatever文件在你的项目? 编写一个将编辑文件序列的声明性脚本很容易。 不需要命令式或程序式编程。
  • 易于扩展
    Vim至less可以在Python中进行扩展。

首先,要谦虚。

只要你仍然知道他们是非常强大的工具,你会没事的。 如果你发现一项任务非常困难,而且你正在想“只是我不是编辑”,那么你就有正确的心态去学习和改进。

布拉姆的7个习惯是通过http://www.moolenaar.net/habits.html走的一条良好的信条;

另外我强烈build议你去写一个插件。 它没有关系。 它为您深入阅读手册提供了动力。

也许,一个好方法是在使用eclipse的同时学习vim / emacs。 尝试vimplugin或emacsplus插件的日食。

这应该只是一个评论,但对于哪个答案…

对于Vim,我build议使用GUI版本开始,只需进入内置的帮助非常好( :h和屏幕分割添加一个面板全面的“超链接”的帮助页面)。 在vim中,唯一有潜在危险的操作是写入,所有其他操作都可以通过命令或编辑(撤消和重做)来恢复。

获得的权力很容易激励学习。

以下是您学习的方式:开始input。 当你打到一个你想要打字以外的东西的时候,看看你是怎么做的。 重复。 这有助于从一些基本知识开始,比如说7个基本的命令。 除此之外,当你想要做一些操作,查找并使用它。

这个伟大的教程对于我在Vim中的第一步非常有帮助。 这是一个愉快的方式轻轻地介绍和解释vim的哲学:

aByteOfVim

我学习emacs的方式主要是通过执行以下两个操作:

  1. 所有的GUI菜单都显示出你可以用来执行和那个菜单项相同的命令的键绑定。 请注意您select的菜单项的绑定,并在下次有机会时手动尝试。
  2. ctrl -h ctrl-h(想想“Help!Help!”)会popup一个缓冲区,显示可用的各种types的帮助。 如果您按下“b”键(缓冲区将其称为“describe-bindings”),您将获得您正在使用的缓冲区中可用的所有键绑定的列表。 只是仔细阅读,看看有用的命令。 试试看,当你有机会。

至于vi ,我在vim之前的几天就知道了,所以我几乎不得不用man vi来解决这个问题。 我们大多数emacs用户会告诉你,你需要知道的所有vi :q! (“退出,我真的是这个意思”)。 🙂

但事实上,如果你是一个Unix用户,你需要学习至less足够的vi来做简单的编辑来configuration文件并保存它们。 当你试图在一个奇怪的系统Unix系统上启动emacs时,你永远不知道究竟是什么(如果有的话),但vi总是在那里。

几乎所有在Emacs中看到或者交互的东西都可以告诉你自己 – 你只需要知道如何去问它。

学习Emacs,了解当前的Emacs上下文:事物的价值是什么,它们之间的关系是什么,它们是如何表示的,如何改变它们或者与其进行交互。

最重要的是Emacs Emacs Lisp,它是一个Lisp 生态系统 。 学习Emacs也意味着学习Emacs Lisp – 你知道得越多越好。 Lisp是Emacs 自我实现为“自我logging,可扩展编辑器”的最灵活和最强大的方式。

冰柱可以帮助你学习Emacs和Emacs Lisp。 它可以帮助你问Emacs自己。 这个页面给出了这样做的一个概述: Emacs新手与冰柱

不要陷入vi(m)与emacs的宗教战争。 他们都是伟大的编辑。 我最初开始使用VI(真正的VI而不是VIM),后来开始使用Emacs。 现在,我倾向于使用两者,但emacs更多,因为emacs有一些我不需要vim的function。

真正的挑战和你应该瞄准的是如何尽可能高效,快速和准确地使用你所select的编辑器。 VI和Emacs在这方面有很多提供。 然而,其中大部分归结为您需要发展的两个主要习惯

  1. 不要使用鼠标。 两位编辑都是在老鼠不是现在的瘟疫的时候创造的。 当涉及到编辑,剪切,粘贴,突出显示等,这两个编辑提供键盘等值。 使用它们并将手指放在键盘上。 你会惊讶你会变得多快

  2. 避免使用箭头键。 这是出于类似的原因。 箭头键往往会使你的手离开主键盘。 最后,这也降低了你的工作效率。 这两个编辑器都提供了更加方便快捷的function。

在学习这些编辑时,这两个主要的东西是要关注的。 还有更多的东西,但是从一开始就着重于使用主键盘。

在你获得了这一点之后,开始考虑如何调整你的环境以适应你的需求。 到这个时候,你会熟悉你select的编辑的能力,并可能会有一些想法。 这两个编辑器都是非常可configuration的。 我发现emacs是最容易configuration的,但是在写elisp来configuration一些东西之前,你可能会很容易的迷失方向,而在你知道它之前,你是一个有点PHP和Python的elisp程序员。 在某种程度上,VIM也可能发生同样的情况,但程度较低。 但是,请注意,默认设置通常由具有丰富经验的人员设置,并且可能知道您不知道的内容。 避免犯错误,试图修改任何编辑器是你的用途。 首先了解它如何以最小的configuration工作,然后在您知道为什么以某种方式完成之后,再改变它 – 在破坏规则之前了解规则。

如果你认真对待编程,你的编辑将是你最重要的工具。 其他重要的工具是你的屏幕,椅子和键盘。 其余的是附带的。