1.如何同时查找多个关键词
比如我想要高亮出文档中所有的aa, bbbb, ccccc
2.举例说明
有一个枚举
enum Test {
TEST_A,
TEST_BBBBB,
TEST_CC,
TEST_DDDDDDD,
TEST_EEE
};
如何快速加上如下的注释
enum Test {
TEST_A, // 0
TEST_BBBBB, // 1
TEST_CC, // 2
TEST_DDDDDDD, // 3
TEST_EEE // 4
};
对于问题2,综合各位的回答,加上自己的修改,我使用的方法如下:
-
set ve=all
使得光标可以到达没有字符的地方 -
C-v
进入列块可视模式,选中要插入注释的那一列 - 按
A
并插入// 0
,按Esc
回到普通模式 -
V
进行行可视模式,选中添加了注释的所有行 - 执行命令
let i=0|'<,'>g/0$/s//\=i/|let i=i+1
-
set ve=
把虚拟编辑选项复原
第二个问题:
-
set ve=all
使得光标可以到达没有字符的地方 -
C-v
进入列块可视模式,选中要插入注释的那一列 - 按
A
并插入// 0
,按Esc
回到普通模式 - 再次进入列块可视模式,选中那一列
0
- 使用 visIncr.vim 的命令
:I
把它改成递增的数值序列 -
set ve=
把虚拟编辑选项复原(我推荐使用非默认值block
,这样不用经常切换了)
PS: 一般用不到枚举的整数表示的吧?
第一个问题,搜索的时候用正则:
第二个问题,录制个宏就好了吧:
- 首先手动输入第一行的注视,也就是在结尾添加一个
// 1
- 在第一行的任意位置,录制这个宏:
qq^f y$j$p^A
- 用之~
解释一下:
-
qq
: 录制宏到寄存器q
-
^
: 去行首 -
f
: (注意f
后面是空格),去第一个空格处 -
y$
: 复制到行尾 -
j$p
: 去下一行的结尾粘贴 -
^A
: (这是 Ctrl-A)+1
第二个问题
使用列编辑
可以连续一系列注释
自增的数字, 在命令行模式,输入如下命令:
:let i=0|g/0/s//\=i/|let i=i+1
自增的方案来源这往篇文章:link