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#,它们一起使编辑代码比以前更快更容易,但即使如此,我认为我可以享受根本不需要使用鼠标。

甚至连方向键都没有。


当前回答

仅在Unix系统上,Vim的惊人的普遍性,以及vi克隆的更惊人的普遍性,就足以使它值得学习。

除此之外,我认为整个vi式的思维方式让我变得更有效率。对于一个不习惯命令模式和插入模式等模式的人来说,仅仅为了插入文本而进入一个模式似乎有点过分。但是,当一个人已经使用Vim几个月,并且已经学习了相当多的技巧和技巧时,Vim似乎是一项值得的资产。

当然,关于Emacs风格的思维,Emacs人群也说了同样的话,但我放弃了学习Emacs,因为Vim更简单,而且为我做了这项工作。

其他回答

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

你可能想学习vim,因为很多人说它很酷。看看这个问题你有多少答案。

我将提供学习vim的另一个原因。它以其文件的质量和完整性而闻名。因此,只要你设法在帮助查询中插入适当的关键字,你就会在帮助系统中找到大多数问题的答案。

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

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

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

阅读帮助

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

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

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

要快速学习vi(m),首先必须理解整个设计。 Vim有一组很棒的光标移动命令,检查一些(X是一个字符,#是一个数字):

J k进入箭头 0美元 w w b b ctrolD crtolU ctrolE ctrolY H m l fX fX tX tX,; % gg G n n mX 'X”

还有很多,要一一列举是很无聊的。其中许多工具都支持在命令之前添加计数,比如用4j向上移动4行。

现在,回到设计中,键入一个命令,如d,用于删除,然后移动光标,该命令应用于从光标位置到移动结束的文本段。例如,H移动到屏幕顶部,dH删除到屏幕顶部,cH更改(替换)到屏幕顶部。

这个设计很强大。它还可以减少或组织你需要学习的内容。 毫无疑问,第一步是学习一些光标移动命令。比如说,一开始是8到10个。那么你就差不多完成了。

不要被命令的数量吓到,我还没有遇到过使用最多几十个命令的人。我发现它是不可或缺的,因为当我想到代码时,我想到的是文本,转到思考鼠标只会把我弄糊涂。最大的技巧,我认为,是一次学习一点,不要犹豫,玩玩-撤销功能是很好的探索它的行为。

此外,如果您深入了解它,vim是可编写脚本的。可能性是无限的。

(是的,所有这些也适用于emacs…)