我听说过很多关于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中有一个无序列表,比如使用#作为标记,你可以将它转换为有序列表。
# 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
提高编辑速度的第三个标准是所需的击键次数。我得说这比你的其他两个更重要。在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使我更有效率?”,我希望答案是“高效”。
你可以在替换字符串中使用\=,这是我经常做的事情。
如果你在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