我听说过很多关于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的哪些方式使您的工作效率更高?


当前回答

特别是对于复制/剪切和粘贴,使用可视化模式更容易适应其他编辑器。我通常复制粘贴的方法是

Esc - exit Insert mode (skip if you are already in Normal mode) v - turn on visual mode move about the file to select the text you want - visual mode will show you what characters are selected. For a few words w, e and b are useful (move to start of next word, end of next word and start of this/previous word respectively). d - cut the text (use y if you want to copy the text) move about to where you want the text to go p - paste (this pastes after the current character, P pastes before the current character.

同样有用的是使用V进入视觉模式(行),它会自动选择整行,无论光标在哪里。

其他回答

我最近发现了这个网站:http://vimcasts.org/

非常新,而且非常非常好。运行网站的人从textmate切换到vim,并在特定的vim主题上进行了非常出色和简洁的cast。点击这里查看详情!

花30分钟做vim教程(在终端运行vimtutor而不是vim)。您将学习基本的动作和一些击键,这将使您使用vim至少与使用之前使用的文本编辑器一样高效。在那之后,好吧,再读一遍吉姆·丹尼斯的回答:)

Control+R机制非常有用:-)在插入模式或命令模式下(即输入命令时在:行上),继续使用编号或命名寄存器:

A - z命名寄存器 未命名的寄存器,包含最后一次删除或删除的文本 %当前文件名 #替代文件名 *剪贴板内容(X11:主要选择) +剪贴板内容 /最后一个搜索模式 :最后一个命令行 . 最后插入的文本 -最后一个小的(小于一行)删除 =5*5在文本中插入25(迷你计算器)

参见:help i_CTRL-R和:help c_CTRL-R了解更多细节,并在附近搜索更多CTRL-R的好处。

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

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

区域复制Ctrl + v

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

使用内置的文件资源管理器!这个命令是:Explore,它允许你非常非常快地浏览源代码。我在我的。vimrc中有这些映射:

map <silent> <F8>   :Explore<CR>
map <silent> <S-F8> :sp +Explore<CR>

资源管理器还允许您修改文件。我将发布一些我最喜欢的键,按<F1>将给你完整的列表:

-:最有用的:更改到上目录(cd ..) mf:标记文件 D:如果没有标记,删除标记文件或光标所在的文件。 R:重命名光标所在的文件。 d:在当前目录下新建目录 %:在当前目录下创建一个新文件