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

我相信。

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

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

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

更新(2009年4月)

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

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


当前回答

像我一样。用它做任何事情,在freenode的#vim中闲逛。

其他回答

我的建议是写一些简单的程序,从头到尾,使用VI。

很有可能,一开始你会因为学习曲线而感到沮丧,无法强迫自己在工作中或任何对时间敏感的环境中使用它们。

为了熟悉环境/编辑器,我以前曾经这样做过,而且效果非常好。

如果你在写作上遇到了困难,我建议你重做你在学校做过的项目(或者你以前做过的任何事情)。这种方法还有一个额外的好处,就是让您看到自己已经成为了一个多么优秀的开发人员。:)

编辑:忘记提到你应该完全从控制台来做这个,以避免任何使用鼠标的诱惑!

当我还很小的时候(11岁),我的家人搬到德国住了几年。我能够通过沉浸式学习语言——我别无选择,只能说这门语言(尽管如果我在一个可怕的情况下,我可以找到一个会说英语的人)。

我的建议是你也这样做——除非你处于绝对绝望的境地。“好吧,我刚刚删除了/etc/passwd,需要放回root”),有意识地决定尽你最大的努力使用vi。实际上,如果你愿意,学习基本知识并不需要那么长时间。

正如其他人所说,

vim-tutor

可以作为一个很好的起点,就像这张照片一样。

两件事将大大提高你的vi技能:

练习,练习,再练习 Nethack

我的做法是,一开始花几分钟复习最基本的内容——移动光标,前后搜索,跳转到下一个和上一个单词/句子/段落,等等。插入、添加。你脑子里装得下什么都行。然后,当你有事情要做而又不需要在15秒内完成时,强迫自己去做。

当你对基本的命令非常熟悉时,慢慢地学习更高级的命令——尤其是那些利用你之前学习过的命令(比如替换接下来的3个单词,或者删除到下一个搜索目标)。

我喜欢使用VI,一旦我学会了。高级命令比大多数GUI编辑器提供的功能强大得多,而且它无处不在且基于文本,因此可以通过ssh使用,这一点就更好了。

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

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