As a programmer I spend a lot of hours at the keyboard and I've been doing it for the last 12 years, more or less. If there's something I've never gotten used to during all this time, it's these annoying and almost unconscious constant micro-interruptions I experience while coding, due to some of the most common code editing tasks. Things like a simple copy & paste from a different line (or even the same line), or moving 1 or 2 lines up or down from the current position require too much typing or involve the use of the arrow keys ...and it gets worse when I want to move further - I end up using the mouse. Now imagine this same scenario but on a laptop.

我一直在考虑学习VIM,但掌握它所需的时间总是让我想后退一步。

我想听听那些学会了它的人的意见,如果它最终成为你生活中不可或缺的东西之一。

在工作中,我使用VS2008, c#和r#,它们一起使编辑代码比以前更快更容易,但即使如此,我认为我可以享受根本不需要使用鼠标。

甚至连方向键都没有。


当前回答

是的,一定要花时间学习至少一点'vi'和'vim'。它旅行很好。

当你面对一个你没有安装能力的Unix/Linux/Mac系统时,你永远不会被困住。即使在Windows上(如果你有安装功能)“Vim”是免费且易于安装的。(而不是把你的学习曲线完全投入到像UltraEdit这样的东西上,尽管一个优秀的编辑器可能并不总是适合你……)

学习vi可以帮助你学习其他工具,比如sed和regex:一般来说是可迁移的东西。

另外,如果你想成为一个真正的极客,你只需要知道'vi/m',否则你看起来就像一个骗子;-)

其他回答

如果你是一个编辑大量文本的程序员,那么学习一个严肃的文本编辑器是很重要的。你学习哪种严肃文本编辑器并不是特别重要,它在很大程度上取决于你期望在其中编辑的环境类型。

原因是这些编辑器经过高度优化,可以执行您将经常执行的各种任务。例如,考虑在每行末尾添加相同的文本位。这在一个严肃的文本编辑器中是微不足道的,但在其他方面却非常麻烦。

通常vim的杀手特性被认为:A)它在你遇到的几乎所有Unix上都可用;B)你的手指很少需要离开主行,这意味着你可以非常非常快地编辑文本。即使在编辑巨大的文件时,它也通常非常快速和轻量级。

然而,还有很多替代方案。Emacs是最常见的例子,当然,如果你深入研究它,它不仅仅是一个高级文本编辑器。在使用vim/gvim多年后,我个人现在是一个非常满意的TextMate用户。

切换到其中任何一种的诀窍是强迫自己按照它们的意图使用它们。例如,在vim中,如果您手动执行一个多步骤过程中的每一步,或者如果您使用方向键或鼠标,那么可能有更好的方法来完成它。停下手头的工作去查一下。

如果不做其他事情,可以学习vim和Emacs的基本导航控件,因为它们会到处弹出。例如,你可以在Mac OS、大多数Unix shell、Eclipse等任何文本输入字段中使用emacs风格的控件。你可以在less(1)命令、Slashdot、gmail等中使用vim风格的控件。

玩得开心!

这取决于您想用VIM做什么。仅仅因为许多人离不开它而学习它是没有意义的。

当我经常在UNIX环境中工作时,我不能没有它。即使VIM没有安装在UNIX机器上,我也至少可以使用vi。您总是可以依赖它——即使这台机器不是您的(来自客户的)。

现在我用c#编程,主要在windows环境下工作。我在我的电脑上安装了VIM…我不需要它

评估您是否真的需要VIM,以及它是否支持您的“工作流程”。试试吧。玩它。如果你认为你需要它,就坚持下去……学习曲线非常陡峭。

恕我直言,学习新东西总是值得努力的。我建议你打印一张小抄单,强迫自己日复一日地使用它。

I'd say vim is definitely worth learning. I picked it up last summer, and it is now my editor of choice for just about everything (java is a stretch, but doable when I don't need extensive analysis support). As everyone has already affirmed, it is a wonderfully efficient tool. For what it's worth, I only learned a fairly small subset of vim's features (which took a day or two) from a graphical tutorial, and a few odds and ends from here (long read), and the search and replace functionality, and I was hooked. I've learned things since then, but at my leisure. I'd say the learning curve flattens out at this point, but then, I was using it pretty heavily and was surrounded by others who were, too.

是的:如果你不使用,也不打算在将来使用任何IDE。即使您使用IDE,您也会发现自己要返回到它来做许多事情。在vim中,你可以编写脚本,执行复杂的任务,比如使用命令(有点晦涩,但一旦上手就很容易理解)而不是单独编辑500行。起初我觉得很难,但后来它帮助了我很多。即使是最好的IDE编辑器也缺乏vim的功能。Vim可以很好地与CVS、SVN、make、调试器等一起工作。

不:如果你坚持使用Eclipse或Netbeans这样的ide。或者你觉得像凯特这样的编辑对你来说就足够了。事实上,Kate或notepad++或jEdit有GUI和你可能在vim中错过的功能。例如,Kate的符号查看器或notepad++的巨大菜单栏。