不久前,我读了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中窃取想法(这是我的)

其他回答

首先,您可能想要使用Vim;与vi所拥有的一切一样,它拥有一个非常优越的特性集。

也就是说,学习需要自律。如果你有一份工作,并且无法承受工作效率的下降(否则会被解雇),我建议你参加一个周末项目,唯一的目的就是学习编辑器。在你工作的时候保持文档的开放,并且要自律,不要临阵退缩。当你学得更多,变得更有效率,开始依赖肌肉记忆,坚持下去就不会那么难了。

我使用Vim的时间太长了,以至于我甚至没有考虑过按什么键来搜索、导航或保存。我的手从来没有离开过键盘。使用Vim是我在编程生涯中做出的最好的选择之一。

这听起来很傻,但玩roguelike游戏(如《Nethack》或《Angband》)是一种使用h/j/k/l键进行光标导航的有趣方式。

在您使用的所有平台上安装gVim。

然后运行vimtutor (:help vimtutor或在命令行执行vimtutor)。

观看下面的讲座并遵循它的建议:有效文本编辑2.0的7个习惯

我说你一定要开始使用它来进行所有的编辑。如果你担心效率下降,那就花一个周末的时间来练习(我曾经这样做过,把qwerty换成dvorak,到周一的时候我的效率已经足够高了,并且成功地坚持了下来)。

这是值得的努力,你不会回头!

玩很多nethack游戏。我上大学的时候就是这么做的,后来我发现光标的移动也是一样的。尽管此时您可能需要更改设置以使用vi样式的键映射。

删除所有其他文本编辑器应用程序。

那你就得学会。