修改vim中所有的相同内容的方法
梦里伊人
posted @ 2008年10月08日 17:22
in Linux系统的相关知识
, 2686 阅读
修改vim中所有的相同内容的方法
假设有一个vim文件,内容如下:
while(!feof(fp1))
{
int ret=fscanf(fp1,"%d %f %f %f %f %f %f",&i,
&a[0],&a[1],&a[2],&a[3],&a[4],&a[5]);
if (ret!=7)
break;
if (i==0)
{
printf("%d\n",i);
if((fp = fopen("test0.asc","a+"))==NULL)
{
printf("open test0.asc Error!\n");
return 1;
}
fprintf(fp,"%f %f %f %f %f %f\n",
a[0],a[1],a[2],a[3],a[4],a[5]);
fclose(fp);
}
if (i==4)
{
printf("%d\n",i);
if((fp = fopen("test4.asc","a+"))==NULL)
{
printf("open test4.asc Error!\n");
return 1;
}
fprintf(fp,"%f %f %f %f %f %f\n",
a[0],a[1],a[2],a[3],a[4],a[5]);
fclose(fp);
}
if (i==1)
{
printf("%d\n",i);
if((fp = fopen("test1.asc","a+"))==NULL)
{
printf("open test1.asc Error!\n");
return 1;
}
fprintf(fp,"%f %f %f %f %f %f\n",
a[0],a[1],a[2],a[3],a[4],a[5]);
fclose(fp);
}
if (i==2)
{
printf("%d\n",i);
if((fp = fopen("test2.asc","a+"))==NULL)
{
printf("open test2.asc Error!\n");
return 1;
}
fprintf(fp,"%f %f %f %f %f %f\n",
a[0],a[1],a[2],a[3],a[4],a[5]);
fclose(fp);
}
if (i==3)
{
printf("%d\n",i);
if((fp = fopen("test3.asc","a+"))==NULL)
{
printf("open test3.asc Error!\n");
return 1;
}
fprintf(fp,"%f %f %f %f %f %f\n",
a[0],a[1],a[2],a[3],a[4],a[5]);
fclose(fp);
}
}
{
int ret=fscanf(fp1,"%d %f %f %f %f %f %f",&i,
&a[0],&a[1],&a[2],&a[3],&a[4],&a[5]);
if (ret!=7)
break;
if (i==0)
{
printf("%d\n",i);
if((fp = fopen("test0.asc","a+"))==NULL)
{
printf("open test0.asc Error!\n");
return 1;
}
fprintf(fp,"%f %f %f %f %f %f\n",
a[0],a[1],a[2],a[3],a[4],a[5]);
fclose(fp);
}
if (i==4)
{
printf("%d\n",i);
if((fp = fopen("test4.asc","a+"))==NULL)
{
printf("open test4.asc Error!\n");
return 1;
}
fprintf(fp,"%f %f %f %f %f %f\n",
a[0],a[1],a[2],a[3],a[4],a[5]);
fclose(fp);
}
if (i==1)
{
printf("%d\n",i);
if((fp = fopen("test1.asc","a+"))==NULL)
{
printf("open test1.asc Error!\n");
return 1;
}
fprintf(fp,"%f %f %f %f %f %f\n",
a[0],a[1],a[2],a[3],a[4],a[5]);
fclose(fp);
}
if (i==2)
{
printf("%d\n",i);
if((fp = fopen("test2.asc","a+"))==NULL)
{
printf("open test2.asc Error!\n");
return 1;
}
fprintf(fp,"%f %f %f %f %f %f\n",
a[0],a[1],a[2],a[3],a[4],a[5]);
fclose(fp);
}
if (i==3)
{
printf("%d\n",i);
if((fp = fopen("test3.asc","a+"))==NULL)
{
printf("open test3.asc Error!\n");
return 1;
}
fprintf(fp,"%f %f %f %f %f %f\n",
a[0],a[1],a[2],a[3],a[4],a[5]);
fclose(fp);
}
}
要想将里面所有的“fp”都改成“file”,如果不利用菜单中的查找替换功能而使用命令,方法为:找到其中一个fp,按住shift键同时用鼠标左击fp,则所有的fp都高亮显示,按Esc到标准模式下,将鼠标放到fp的第一个字母上,依次按c、w键,可见该处的fp被删除并进入键入模式,输入“file”,再按Esc到标准模式下,按n键,见光标跳到下一个fp上,按“。”键,可见该处的fp随即被替换成“file”,再依次按“n”和“。”到最后一个fp被替换成“file”为止。 (总结:分别按“Esc”->“c”"w"->替换的内容->"Esc"->"n"->"。")
2008年11月01日 19:18
用正则表达式修改更方便,
呵呵。。。