我听说过很多关于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中,几乎所有的操作都比我熟悉的任何其他编辑器需要更少的按键。

You mention that you are having trouble with cut & paste, but it sounds like you need more experience with general motion commands in vim. yank 3 words: y3w yank from the cursor to the next semi-colon: yf; yank to the next occurrence of your most recent search: yn All of those are much faster than trying to navigate with a mouse while holding down a modifier key. Also, as seen in some of the examples in CMS's response, vim's motion commands are highly optimized for efficient navigation in C and C++ source code.

至于“如何使用vim使我更有效率?”,我希望答案是“高效”。

其他回答

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

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

区域复制Ctrl + v

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

Ctrl-w Ctrl-f ............ open file under cursor in new window
Ctrl-6 ................... alternate file
'0 ....................... open last file
:x ....................... close if save

http://www.viemu.com/a-why-vi-vim.html是一篇很好的宣传文章。它解释了使用。命令重复最后的编辑。

复制/剪切和粘贴。我一直都在做 时间。用所有经典的编辑器 用左手按Shift键, 你用你的 用右手选择文本。然后按Ctrl + C 复制时,移动光标并按Ctrl+V 贴。 Vim的情况很糟糕: * yy复制一行(你几乎不需要整行!) * [number xx]yy复制xx行到缓冲区。但世事难料 如果你选择了 想要的。我经常要做[数字] Xx]dd then u to undo!

我相信其他答案解释得更好,但是你做错了。我经常使用可视模式来选择要删除或删除的文本,这类似于shift + select的例子,但Vim在这里有一个明显的优势,因为你的手永远不会离开主行来做这件事。yy是一个很好的命令,但如果我想拉整行,我经常用Vy代替。

实际上我总是丢失我的缓冲区,所以我通常复制一行的方式是把它写到一个临时文件,然后在适当的位置读入。

e.g.

Ka(设定标记)

”,。w !T(将标记中的所有内容复制到文件T)

. .移动你的光标。

:.rt(将t读入当前点)。

与使用缓冲区相比,这可能需要更少的击键,更容易跟踪,并且您可以拥有长期存在的粘贴文件。为了速度,我通常用一个字母来命名文件。

快速移动光标的关键原因是,你只需使用搜索函数“/”,如果你在到达你想去的地方之前遇到另一个模式,则使用“n”。

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

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

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

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