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

甚至连方向键都没有。


当前回答

我和你的情况一样,作为Vim的初学者,我最初发现它有点令人生畏——学习曲线似乎很陡峭。 从我在短短几个小时里学到的东西来看,我已经觉得没有它我就活不下去了。

下面是我找到的一些有用的Vim截屏链接,可以向您展示它的功能。

Bram Moolenaar (Vim的仁慈独裁者)在最后一个链接中给出的一个很好的建议是,试图学习每一个命令和函数是没有效率的,只是弄清楚你正在做的事情不是很好,寻找一种方法使它更有效,然后使它成为一种习惯。

其他回答

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

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

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

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

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

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

阅读帮助

我和你的情况一样,作为Vim的初学者,我最初发现它有点令人生畏——学习曲线似乎很陡峭。 从我在短短几个小时里学到的东西来看,我已经觉得没有它我就活不下去了。

下面是我找到的一些有用的Vim截屏链接,可以向您展示它的功能。

Bram Moolenaar (Vim的仁慈独裁者)在最后一个链接中给出的一个很好的建议是,试图学习每一个命令和函数是没有效率的,只是弄清楚你正在做的事情不是很好,寻找一种方法使它更有效,然后使它成为一种习惯。

我认为花时间和精力去学习vim绝对是值得的。对我来说,它使得在文本中输入和导航变得如此高效,很难想象回到emacs或ctrl/shift/alt/meta组合键。

不要被vim所有花哨的特性吓倒。一旦你用得够多了,你就会知道哪些命令用得最多,哪些事情可以忘记。

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

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

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