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是因为我必须学。

我那疯狂的老师强迫我们学习用C语言在AIX系统上用终端编程。

这真的很痛苦,但值得。

今天,我只在快速编辑或小程序时使用vi。

当我必须去做一个项目时,我宁愿使用IDE。在我的案例中,IntelliJ idea非常适合这个任务,因为我可以在不抓鼠标的情况下编写数小时的代码。

我不知道VS2008有多少快捷方式,但如果它们像Eclipse一样容易被发现,我认为你有麻烦了,去vi吧。

如果你不在IDE外编辑代码,而你的IDE有很好的快捷方式,你最好学习这些,然后,无论如何,去学习vi。

:)

其他回答

浏览vimtutor只花了我30分钟,这足以让我熟悉vim。每一秒都是值得的。

我最近改用了VIM,我认为这是值得的。如果你需要“完成一些事情”,你可以一直保持在插入模式,在这种模式下vim就像一个普通的文本编辑器。

我已经注意到,一些以前并不困扰我的事情,比如按方向键,现在感觉不对,太费劲了。它确实减少了我的手部活动和鼠标的使用,这对人体工程学和工作效率都有好处

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

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

您可能希望学习vim,因为您可能对已经使用的编辑器不满意。

你可能想学习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)下运行。