我听说过很多关于Vim的事,包括优点和缺点。 (作为一名开发人员)使用Vim确实应该比使用其他任何编辑器都要快。 我用Vim来做一些基本的事情,我用Vim最多只能减少10倍的效率。

当你谈论速度时,只有两件事你应该关心(你可能不够关心,但你应该关心):

左右交替使用的 用手是最快的方法 键盘。 永远不要碰鼠标 第二种方法是尽可能快。 你要花很长时间才能移动你的手, 抓住鼠标,移动它,把它带来 回到键盘上(你经常这样做 看看键盘,确保你 将你的手正确地回到正确的位置)

下面的两个例子说明了为什么我使用Vim效率低得多。

复制/剪切和粘贴。我一直都这么做。在所有当代编辑器中,你用左手按Shift键,用右手移动光标来选择文本。然后按Ctrl+C复制,移动光标,按Ctrl+V粘贴。

Vim的情况很糟糕:

Yy复制一行(你几乎不需要整行!) [number xx]yy复制xx行到缓冲区。但你永远不知道你是否选择了你想要的。我经常要做[number xx]dd然后u来撤销!

另一个例子吗?搜索和替换。

在PSPad中:按Ctrl+f,然后输入你想要搜索的内容,然后按Enter。 在Vim: /中,然后输入你想要搜索的内容,然后如果有一些特殊字符,在每个特殊字符前放\,然后按Enter。

Vim的一切都是这样的:似乎我不知道如何正确处理它。

注:我已经读了Vim小抄:)

我的问题是:

与当代编辑器相比,您使用Vim的哪些方式使您的工作效率更高?


当前回答

你问了高效的快捷方式,但我认为你真正的问题是:vim值得吗?这个stackoverflow问题的答案是->“是”

你一定注意到了两件事。Vim功能强大,而且很难学习。它的强大之处在于它的可扩展性和无穷无尽的命令组合。不要感到不知所措。走慢。一次一个命令,一个插件。不要做过头。

你在vim上的所有投资都将得到一千倍的回报。在你死之前,你会在文本编辑器里呆上很多很多个小时。Vim将是您的伴侣。

其他回答

gi

转到上次编辑的位置(如果你进行了一些搜索,然后想要返回编辑,这非常有用)

^P和^N

完成上一个(^P)或下一个(^N)文本。

^O和^I

转到前一个(^O -“O”为旧)位置或下一个(^I -“I”靠近“O”)位置。 当你执行搜索、编辑文件等时,你可以通过这些“跳转”向前和向后导航。

我最近发现q:。它会打开“命令窗口”,并显示您最近的前模式(命令模式)命令。您可以像往常一样在窗口内移动,并按下<CR>执行命令。你也可以编辑等等。当你在处理一些复杂的命令或正则表达式时,你不想重新输入整个东西,或者如果你想做的复杂的事情是3个命令返回,这是无价的。它几乎类似于bash的set -o vi,但是是针对vim本身的(嘿!)

参见:help q:获取更多有趣的来回操作。

多个缓冲区,特别是在它们之间快速跳转,以比较:bp和:bn的两个文件(正确地重新映射到a Shift + p或Shift + n)

Vimdiff模式(在两个垂直缓冲区中分割,用颜色显示差异)

区域复制Ctrl + v

最后,标签完成标识符(搜索“mosh_tab_or_complete”)。这改变了我的生活。

我经常使用的另一个有用的vi快捷方式是“xp”。这将把光标下的字符与下一个字符交换。

你可以在替换字符串中使用\=,这是我经常做的事情。

如果你在vim中有一个无序列表,比如使用#作为标记,你可以将它转换为有序列表。

# CSSLINT
# PHPCS
# Charlie
# Delta

如果从一号线开始,你就可以

:1,6s/#/\=line(".")/g

把它转换成

1 CSSLINT
2 PHPCS
3 Charlie
4 Delta

如果它不是从第一行开始的,只要计算一下:

:16,20s/#/\=line(".") - 15/g

更多信息见:help sub-replace-expression