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',否则你看起来就像一个骗子;-)

其他回答

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

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

投资学习VIM(我的首选)或EMACS会有回报。

我建议访问Derek Wyatt的网站,浏览VIM导师,并查看Steve Oualine的PDF书。

与我使用过的其他编辑器相比,Vim可以帮助我更快地移动和编辑。我的工作ide在允许人们做的事情上是非常有限的,并且通常致力于特定的环境。有些任务仍然需要我重新访问IDE(例如调试器,它是IDE的编译部分)。

I too put off learning vi or vim for many years. Matter of fact, I use to make fun of the "vi guys" who always seemed to be doing finger aerobics. Then, as I moved away from Windows and over to Linux as my primary OS, I had to become more familiar with vim. It was a learning curve and it still is. After 9 years of using vim on a daily basis I still find myself learning new and faster ways of doing things. What I use to think of as "finger aerobics" actually turned out to be an extremely efficient way of being productive. I can now do a whole lot more code development in a whole lot less time and effort than I ever did prior to vim. And as I'm sure you know vim runs on about every platform out there so you always have it when you need it. Also, if you like GUI's they have GUI versions for most platforms. Personally, just like the mouse, I don't want to see a menu bar, scroll bars, etc. cluttering up my editing window(s).

如果你决定尝试一下vim,我强烈推荐O'Reilly的《vi Editor Pocket Reference》一书。它很便宜,如果你只是学习vi (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)下运行。

这绝对是值得努力的。

使用Vi(m)的人会告诉您一个明显的原因,还有两个原因人们似乎从来没有提到过。

这是一个显而易见的例子:

Vi无处不在,功能强大得令人难以置信,通过学习一次,您就可以在几乎任何有键盘的计算机上使用这种功能。

下面是学习Vim的一些鲜为人知的原因:

It's not half as much effort as you think it's going to be. Run through the Vim tutor once (vimtutor at a shell, or in Windows run it from the Vim folder in the Start Menu), and you'll already be well on your way to competence, and it's all downhill from there. I was up to the level where I could use Vim at work without taking any noticeable productivity hit within less than a week's worth of lunchtimes. It's fun! Editing text is like a game to me now. I actively enjoy it--which is pretty ridiculous, when you think about it.

还有两个不学习Vim的好理由:

它会让人上瘾,你会发现自己希望在所有的计算中都能使用Vim命令,而每当不能使用时就会诅咒。幸运的是,至少在某些情况下,有一些方法可以绕过这个问题。 同样,它会让人上瘾,尽管您不会因为实际使用Vim而失去任何生产力,但您将浪费数小时搜索使您的Vim体验更好的好提示,并阅读Stack Overflow上的Vim标签。