不久前,我读了viemu创建者的一篇文章,澄清了许多关于vi的误解,并解释了为什么它是一个好主意(以及为什么它在过去30多年里非常流行)。同一个人还有一套很棒的图形备忘单,每次教一些基本知识。

我相信。

事实上,在过去的两年里,我一直被说服。但是我仍然没有强迫自己学习vi作为我的主要编辑器,学习曲线太高了。当我开始工作时,可接受的但即时的生产力(使用我当前的编辑器)到目前为止已经超过了进一步的巨大生产力(使用vi)。

有没有人有什么好的建议来帮助你度过学习曲线?它可以是直接的提示,一些其他教程或文章,无论什么。

编辑:注意,我知道vi的vim/gVim, Cream和MacVim(等等)变体。我的问题是指vi家族作为一个整体。谢谢你的精彩回答。

更新(2009年4月)

自去年12月以来,我一直在日常的职业生活中使用Vim(更准确地说,是MacVim)。我不会回去的。

祝大家在掌握Vim的过程中好运。


当前回答

当我开始为一家ISP工作时,我才学会了vi,那里编辑域的脚本只能在终端上打开vi。我别无选择,只能学习它,但我从未后悔过。

简而言之,把自己放在一个你别无选择只能学习的环境中。

其他回答

我的第一个建议是:学会快速打字,不需要看键盘。

如果您不能触摸类型,并且总是在寻找冒号或hjkl或:%s/foo/bar,请忘记它。输入可以比使用鼠标更快,但如果不是这样,vi将不起作用。

但结合良好的打字技能,ssh、screen和vi将是自然的。

我记得当我第一次开始学习emacs时,那是在我已经非常熟悉Vim之后,我和你处于相同或相似的境地,我知道如何在另一个编辑器中完成很多工作,所以当我开始使用emacs时,它总是非常缓慢。

然而,我认为你要做的只是承受一点点痛苦,并且总是,总是,总是确保你在以前的编辑器中做一些你知道可以做的事情时查找文档,比如移动到一行的末尾,或者选择文本的一个区域。

如果你身边有一个本地的vi专家,你可以问问题,或者如果你像我们公司一样,你提倡结对编程,这也是有帮助的。这样当你试图做一些应该很容易的事情时,你可以简单地问别人,他们会告诉你如何做,如果你经常使用编辑器几个星期,你不应该在它成为第二天性之前再问几次。

如果你没有任何本地资源,网上有大量的书籍/教程/参考资料,应该可以回答你的大部分问题。

最终,学习Vi就像学习其他技能一样,没有银弹,你必须接受这一点,在一段时间内,你使用Vi的效率将低于当前的编辑器。只要不断告诉自己,“其他人已经能够学习Vi,我至少和他们一样聪明”(这就是我告诉自己的:))

虽然我是vi的忠实粉丝,特别是vim,但有很多功能强大的编辑器,你不应该觉得你必须使用vi,或者它在某种程度上是某种绝对完美的编辑器,因为它不是。

If you have to force yourself to use vi, I would be concerned that you don't feel productive using it. However, if you insist on persisting, I would probably just make sure I used vi for every single editing task. Whenever I need to do something and I don't quite no the best way to do it, I'd try to find the optimal (in terms of minimal keystrokes) to do it in vi after I did it a non-optimal normal way. I'd then make a post-it note with this little tip (or maybe just a text file) so I would remember it for next time.

随着时间的推移,您使用vi的效率将显著提高。

对我来说,VI是一个很好的应急编辑器,但如果有其他可用的替代方案,我就不想使用它。我知道这并不适合所有人,我并不是说这很糟糕,我只是个人更喜欢可发现的UI。

但是如果你想在Linux中做任何重要的事情,你真的必须了解VI !

所以只需要学习基础知识: i =插入模式 Esc =leave插入模式 :wq=save and quit :问!=不要存钱就放弃 X =当不在插入模式时,删除该字符。 / =搜索

这能帮你度过任何剪辑上的难关。使用这几个命令(当然还有导航)没有什么是做不到的。其余的你可以根据需要“附加”。

不过,要有参考资料或书籍可用——当您需要使用VI时,可能无法浏览网页——但是手册页可能有些用处。

我用它在linux的web服务器上编辑文件,而不是使用FTP。那是9年前的事了,我已经掌握了这些技能。

另一件事是找到一些你可以在VI中做的很棒的事情,比如全局搜索和替换或更强大的东西,并在需要的时候使用VI。