极客网vim必知会网址:https://time.geekbang.org/column/article/266754。
在学习vim的过程中,遇到了一般命令行模式中使用的操作【c2i{】,一开始看不懂是什么意思,通过不断的试探总结了一些规律,不一定对,至少能够说的过去。
测试代码如下。
#include <bits/stdc++.h>
int main()
{
int a = 1;
int b = 2;
int c = 3;
for(int i=1;i<=4;i++)
{
if(a == 1)
{
printf("abc");
if (b == 1)
{
printf("efg");
if (c == 1)
{
printf("tao");
}
}
}
}
return 0;
}
首先说明一下,vim中的一些按键中d加动作可以进行文本内容的删除,c加动作可以进行文本内容的修改(也就是删除原来的内容,之后进入插入模式)等。这些按键有很多的组合键,非常实用,组合键【c2i{】就是其中之一,详细的说明可以参考最上面的网址。
接下来此时一下组合键【c2i{】、组合键【ci{】、组合键【c3i{】、组合键【c4i{】的效果。
在vim中将光标移动到18行,如下图所示。
按下组合键【ci{】之后的效果如图所示。
上图中将内容【printf(“tao”);】删除了之后,马上进入了插入模式。组合键【ci{】个人理解为change inside {,也就是改变{}中的内容的意思。补充一点,相对于组合键【ci{】来说,还有组合键【ca{】,是将大括号中的内容,连同大括号一起删除,之后进入插入模式。效果图如下。
按下组合键【c2i{】的效果图如下。
这下子就可以明白组合键【c2i{】和组合键【ci{】的区别了,组合键【ci{】是将当前光标所在的行所属的最内层{}中的内容删除并进入插入模式,而组合键【c2i{】是将当前光标所在的行所属的倒数第二层{}中的内容删除并进入插入模式,总的来说,对于内容【{{{abc}}}】来说组合键【ci{】删除的是内容【abc】并进入插入模式,组合键【c2i{】删除的是内容【{abc}】并进入插入模式。从而可以推广到组合键【c3i{】和组合键【c4i{】,效果图分别如下两张图所示。光标一开始都是在上图的18行。