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绝对值得学习,以下是部分总结前面所述的主要原因:

Vi/Vim can be found on most unix systems. Vim allows you to easily code without taking your hands off the keyboard. If you plan you configure anything in a unix based system likelihood is you going to be editing a fair few config files, therefore you'll want to learn a terminal based editor, of which vim is one of the best (sorry emacs). Vim compiles/has precompiled binaries for almost every OS out there. No need to post "I need a textmate alternative for [insert OS]", you'll have Vim instead! There are a lot of good plugins out there to add alot of functionality, such as in-editor cvs diffs, although some of these require a fair amount of tinkering.

另外,如果您喜欢Vim键绑定,也有一些ide在它们的编辑器中包含了Vim绑定,用于简单的命令,例如Komodo Edit。

要获得学习Vim的帮助,请尝试在终端中输入'vimtutor'并按照说明进行操作。还有一本书是特别好的Hacking Vim

不。学习vim比努力更有价值。

只需学习16个键的含义,就可以从vim中获得良好的功能:ijkdbw9:q!%s/nNEsc。只需要i:wqEsc就可以完成基本的构造。

你需要知道的前两个键是:Esc将你带入命令模式(你开始的模式),i将你带入插入模式(正常输入)。


为了拯救你需要

退出打字模式(Esc) 键入冒号: 输入小写字母w然后回车

要保存并退出,你需要这样做

退出打字模式(Esc) 键入冒号: 键入小写wq然后回车

不保存并强制退出,你需要

退出打字模式(Esc) 键入冒号: 小写的q!然后输入


要了解更多信息,可以在命令行上运行vimtutor。这是一节中等长度、结构合理的课。

除了i和Esc:你可以复制或超越一些MS Word功能,只需要jkwbd3:%s/nN。

b带你回到一个单词(Ctrl+←) w带你前进一个单词(Ctrl+→) 9w带你前进9个单词 db删除前面的单词(Ctrl+Backspace) D3b删除前面三个单词 9j向下移动9行 输入将带你到单词“ornithopter”的下一个实例,然后n和n分别到“ornithopter”的下一个和前一个出现。 :%s/ confaded /dangfangled/输入每一个“confaded”替换为“dangfangled”(就像在Word中查找和替换all一样)

这些都应该在“命令”模式(Esc)下运行,而不是在插入模式(i)下运行。

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

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

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

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

首先,良好的vi(m)知识将节省您在被围困的服务器上紧急编辑配置文件的时间。它可以支持延迟的ssh连接。

管理的东西除了vim的输入法将是你最好的防御腕管,如果你有效地使用它与人体工程学键盘。

要了解vim的意义,最好的方法是在家里开始一个休闲的项目,拔掉鼠标插头,用胶带遮住方向键。

阅读帮助