代码如下
:map __ yygg///<Enter>Pistatic <ESC>nkA;<ESC><ctrl-o><ctrl-o>zz
这个 map 实现了在 c 文件中为函数快速添加函数声明的映射,下面是一个简单的 c 文件
1 #include <stdio.h>
2 #include <stdlib.h>
3
4
5 main()
6 {
7 funcA();
8 }
9
10 int funcA()
11 {
12 return 0;
13 }
当我写下 funcA 的实现并希望在第 3 行 /// 之前为它添加一个声明时,
只要把光标移动到第 10 行,然后按下"__",即可实现,插入后效果如下
1 #include <stdio.h>
2 #include <stdlib.h>
3 static int funcA();
4
5
6 main()
7 {
8 funcA();
9 }
10
11 int funcA()
12 {
13 return 0;
14 }
下面逐行来解释这个 map 做了什么
yygg 复制当前行并跳转到文件头
///<Enter> 定位到有 /// 的那一行
P 将复制的行放到标记 /// 行之前
istatic <ESC>插入 static 并回到通常模式
n 再次定位到有 /// 的那一行
k 向上一行
A;<ESC> 在行尾加冒号
<ctrl-o><ctrl-o> 跳转到最初的位置
zz 将当前的位置放在屏幕中央
当有如下一个 funcB 有多于一行的函数头时
1 #include <stdio.h>
2 #include <stdlib.h>
4
5
6 main()
7 {
8 int a=1, b=2;
9 funcB(a, b);
10 }
11
12 int funcB(int a,
13 int b)
14 {
15 return a+b;
14 }
使光标位于第 12 行,按 "2__",也可以同样为其添加一个声明如下
1 #include <stdio.h>
2 #include <stdlib.h>
3 static int funcB(int a,
4 int b);
5
6
7 main()
8 {
9 int a=1, b=2;
10 funcB(a, b);
11 }
12
13 int funcB(int a,
14 int b)
15 {
16 return a+b;
17 }
gvim map 实例一则
最新推荐文章于 2021-12-15 20:48:35 发布