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

我相信。

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

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

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

更新(2009年4月)

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

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


当前回答

这些年来,我一直断断续续地使用vim(偶尔做一些系统管理工作)。我最近才开始花更多的时间在里面做我的编程工作。我建议也从gvim开始。它与大多数操作系统环境集成得很好,(甚至更好),当你需要时,你可以回到鼠标:)。

要开始使用vim,运行一次或两次vimtutor(与gVim捆绑在一起)(大约需要一个小时)。我不能夸大它对我的帮助!尤其是第一部分,关于在文档中移动的不同方式,以及如何用运动命令记录编辑动作,等等。在那之后,事情就会清楚得多。

然后,开始对它进行快速、小的编辑(替换记事本的东西),直到你能舒服地快速进行有用的剪辑。然后试着在里面做你的日常工作。你会发现自己非常渴望在其他编辑器中使用“重复最后一个动作”命令!

其他回答

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

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

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

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

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

我在Windows上有VI,我使用的版本如下所示,如果我在控制台窗口中,我总是默认使用VI,那么无论我在什么操作系统上运行,我知道我可以编辑文件。相反,如果我在UI模式,我使用notepad++ go figure。

NT VI - 0.23版 由: 托尼·安德鲁斯 基于一个程序由: 蒂姆•汤普森

在vi爱好者的网站http://nereida.deioc.ull.es/html/vilovers.html上花几个小时,那里有大量的教程、链接等。

您要求获得一些好的技巧来帮助您度过vi文本编辑器的学习曲线。以前的许多答案建议您不要使用其他编辑器。我认为这是一个很好的建议。从更图形化的编辑器切换到vi需要改变心态。它需要从命令的角度思考,而不是从视觉变化的角度。

I used nothing but vi for many years and believe the only way you can be productive is to memorize the commands you regularly use. The way I did this was to make a short list of the most common keyboard commands. I grouped and color-coded these commands by function, i.e. Moving the Cursor, Editing, Searching, etc. I was careful to only include the most commonly used commands I did not know. The idea is to create a quick reference that is also an aid in memorization – not to replace the available help screens. Then I printed this list and taped it to the wall behind my monitor so I could see it easily. (The graphical cheat sheets you mentioned might work better for some, but are probably a better reference source than a memorization tool.)

Here's the key. As I became comfortable with one of the commands, I drew a line through it with a pencil. I could still see it if I needed it, but it was symbolic to me that I had mastered that command. That gave me confidence and motivation as I could see regular progress. Once I had most of them crossed off, I removed them and added some of the more rarely used commands. I continued this process until I was satisfied with my command of vi. I knew I had reached that point when I realized I had not crossed off any commands or even looked at the list in a long time.

几年前,我需要在一个UNIX平台上工作,其中vi是唯一可用的编辑器。我买了一本关于vi的袖珍参考书,但几乎没用过。最后,我像第一次使用vi一样做了清单,并把它们贴在墙上。到第一周结束时,我感到非常舒服,尽管我已经有五年没有使用vi了。