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,是因为我看到有人非常熟练地使用vi,以极快的速度进行编辑。你真的可以用它快速编码。我喜欢它的另一个原因是,有时我发现在IDE中鼠标移动一段时间后真的很疼我的手,而vi提供了一个很好的改变。正如其他人所提到的,它几乎总是在unix系统上可用,即使在糟糕的连接上也能很好地工作。

我没有看到有人提到的一件事是,了解vi在某些圈子里有“极客信誉”的额外好处。我能想到至少有一些人在看到一个新程序员启动nedit来对文件做一些更改时会暗自发笑。

其他回答

无论是vim还是emacs,都绝对值得学习。触摸打字也是值得学习的。在这两种情况下,原因是相同的:你的思考不再被把代码显示在屏幕上的机械过程所打断。

至于如何开始,只需开始使用vim进行所有操作。

附:关于emacs和vi的争论是无休止的。我已经使用emacs 26年了。如果我今天重新开始,我会学习vim,因为(a)它变得更好了,(b)修改键更少了(ctrl - alt - v,任何人),vim用户似乎打字受伤少了很多。

我现在几乎只使用VIM。

我以前使用Vim进行编辑,使用VS Editor进行调试。这可能看起来有点疯狂,但我发现Vi模式(宏,基于home键的编辑等)对我的工作效率有很大的提高,在VS中编辑是很痛苦的。

多亏了Viemu,我甚至不用再做切换了。它还不是完美的解决方案(代码完成有时不像原生vim中那样优雅,宏记录也不完美),但它比不断地来回切换要好得多。

Vim的学习曲线可能被夸大了。我认为一旦你进入它,它是相当直观的。

vi/vim的两个优点:

它很轻 它几乎安装在每个*NIX系统上

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

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

我对我的textpad和ecplise世界很满意,直到我不得不开始在linux下运行的服务器上工作。需要远程脚本和配置文件的设置!

一开始很难,但现在我可以轻松地设置和调整我的服务器。