vim中的记录器可以用来记录文本操作时大量重复性的劳动,从而后面直接使用快捷键就行,骚操作可以大大简化劳动力。
此博客只是简单举例2个,而Vim记录器使用广泛不止于此,比如这样:
其他使用场景请体会后自行斟酌。我另一篇博客举了一些例子可以参考:【Vim生成一列连续按规则递增递减的数字】
大体来说,vim记录器使用流程如下:
1. 打开记录器 #按下q打开记录器跟一个按键即可,如:qa表示将后续操作记录与按键a中
2. 开始vim骚操作 #操作文本
3. 关闭记录器 #再按q表示退出记录器,
4. 重复执行记录器 #然后重复执行则按下【@a】即可在执行一次按键a中记录的动作。
下面通过两个小例子来简述记录器的使用
备注:下面例子需要有vim快速注释插件【NerdCommenter】结合一起使用,安装与使用方法这里不再赘述。
一、批量反注释
1.1 先上动图感受感受

1.2 操作步骤
-
按顺序执行如下操作
qa #打开记录器 shift+v #选中当前行 2j #光标下移2行 ,c空格 #注释选中的文本 f[ #光标跳转到字符 [ ctrl+v #进入多行操作模式 2jk #光标下移2行并右移一个字符 s / * ESC #替换成*/,并进入普通模式 f< #光标跳转到字符 < ctrl+v #进入多行操作模式 2jk #光标下移2行并右移一个字符 */ESC #替换成*/,并进入普通模式 5j0 #光标下移5行,并跳转到行首 q #退出记录器 @a #重复执行 @a #重复执行 @a #重复执行 @a #重复执行 @a #重复执行 @a #重复执行
二、批量注释
2.1 先上动图感受感受

2.2 操作步骤
-
按顺序执行如下操作
qa shift+v 2j ,c空格 5j q @a @a @a @a @a @a
附录:博客动图中操作的示例代码
-
动图中示例代码:
linux,keymap = < /*row0*/ 0x00000069 /* Qt.Key_Left -> HEX:69 -> DEC:105 -> KEY_LEFT */ 0x0001006C /* Qt.Key_Down -> HEX:6C -> DEC:108 -> KEY_DOWN */ 0x0001006C /* Reserved */ /*row1*/ 0x01000067 /* Qt.Key_Up -> HEX:67 -> DEC:103 -> KEY_UP */ 0x0101006A /* Qt.Key_Right -> HEX:6A -> DEC:106 -> KEY_RIGHT */ 0x0001006C /* Reserved */ /*row2*/ 0x0200004D /* Qt.Key_M -> HEX:4D -> DEC:77 -> KEY_KP6 */ 0x02010058 /* Qt.Key_X -> HEX:58 -> DEC:88 -> KEY_F12 */ 0x0202001C /* Qt.Key_Return-> HEX:1C -> DEC:28 -> KEY_ENTER */ /*row3*/ 0x0300004E /* Qt.Key_N -> HEX:4E -> DEC:78 -> KEY_KPPLUS*/ 0x0301004F /* Qt.Key_O -> HEX:4F -> DEC:79 -> KEY_KP1 */ 0x03020049 /* Qt.Key_I -> HEX:49 -> DEC:73 -> KEY_KP9 */ /*row4*/ 0x04000008 /* Qt.Key_7 -> HEX:08 -> DEC: 8 -> KEY_7 */ 0x04010009 /* Qt.Key_8 -> HEX:09 -> DEC: 9 -> KEY_8 */ 0X0402000A /* Qt.Key_9 -> HEX:0A -> DEC:10 -> KEY_9 */ /*row5*/ 0x05000005 /* Qt.Key_4 -> HEX:05 -> DEC: 5 -> KEY_4 */ 0x05010006 /* Qt.Key_5 -> HEX:06 -> DEC: 6 -> KEY_5 */ 0x05020007 /* Qt.Key_6 -> HEX:07 -> DEC: 7 -> KEY_6 */ /*row6*/ 0x06000002 /* Qt.Key_1 -> HEX:02 -> DEC: 2 -> KEY_1 */ 0x06010003 /* Qt.Key_2 -> HEX:03 -> DEC: 3 -> KEY_2 */ 0x06020004 /* Qt.Key_3 -> HEX:04 -> DEC: 4 -> KEY_3 */ /*row7*/ 0x0700002D /* Qt.Key_Minux -> HEX:2D -> DEC:45 -> KEY_X */ 0x0701000B /* Qt.Key_0 -> HEX:0B -> DEC:11 -> KEY_0 */ 0x0702002E /* Qt.Key_Period-> HEX:2E -> DEC:46 -> KEY_C */ >; gpio-activelow; status = "okay";