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

我相信。

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

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

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

更新(2009年4月)

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

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


当前回答

每次你在做一项复杂的编辑任务时,都要思考是否有更有效的方法来完成它。大多数情况下,当您可以用简单的术语描述它时(如“交换文本段落”或“删除注释行中X字符后面的所有内容”),您只需在vim中敲击几下键就可以完成。

有一些关键特性非常有用,你会一直用到它们。我最喜欢的是:

方块选择(Ctrl-V) 宏记录(q) 虚拟编辑(:set ve=all) 正则表达式 连接到外部Unix程序 键映射 自动补全(C-p, C-x C-p, C-x C-f) 操作+移动组合(这是非常强大的)

询问其他程序员他们认为最有用的功能是什么,然后采用那些更适合你大脑的功能。从别人的。vimrcs中窃取想法(这是我的)

其他回答

在现代vi (vim?)中,我发现真正令人困惑的一件事是输入模式允许命令模式的一些功能,但不是所有功能。当输入模式完全简化为“只覆盖,不可能移动光标”时,我感觉舒服多了,就像老Solaris vi所拥有的那样。真正的vi需要您大部分时间保持在命令模式。

话虽如此,现在已经没有必要学习vi了——emacs同样无处不在。:)

为什么不让我用我自己的低摩擦方式来强迫自己呢?: -)

我所做的很简单:我尝试让我的git使用vim提交消息(当您没有在命令行指定消息时,默认编辑器)。

当然,提交消息太短了,几乎没有什么帮助。但是当使用git commit -amend重新编辑消息时,它会更有帮助。

如果你强迫自己使用几天,你会发现这些命令很快就变成了第二天性。如果您使用的是posix系统,我建议您从bsd许可的nvi开始,这是一个经典的1:1 vi克隆,然后转向vim。如果从vim开始,很可能只使用编辑命令的一个子集,因为它的INSERT模式非常类似于GUI编辑器。

就我个人而言,我必须确保我可以在几个应用程序中使用Vim键绑定(或者至少足够接近)。每当我改变编辑器时,都必须完全切换我编辑文本的方式,这使得Vim编辑风格很难被肌肉记忆所接受。

在我的例子中,Viemu + vimperator成功了。

我会从argdo开始,一旦你爱上了它,剩下的就很简单了……