vim 替换

本文介绍了Vim编辑器中替换命令的使用方法,包括`s`、`$s`和`%s`的区别。`s`用于单行替换,`$s`指定范围替换,`%s`全局替换。通过实例展示了如何替换特定行的第一个或所有匹配项,并解释了指定范围替换无效的情况。此外,还提及了在C语言中将字符串写入txt文件的操作。
摘要由CSDN通过智能技术生成

vim 替换

vim 替换%s 与$s

s用于单行替换;$s可以指定范围进行替换;%S用于全局替换
对于指定范围的替换用$s ,全局的替换尽量用%s,%s 不能指定范围进行替换(即使指定了范围仍然进行全局的替换)
使用举例如下:
vim test.txt
nginx nginx dsd nginx
nginx jksdjk nginx
sdjks nginx nginx
进入末行模式
1)替换光标所在行的第一个nginx为TTT(光标在第一行)
:s/nginx/TTT
TTT nginx dsd nginx
nginx jksdjk nginx
sdjks nginx nginx
2)替换光标所在行的全部nginx为TTT(光标在第一行)
:s/nginx/TTT/g
TTT TTT dsd TTT
nginx jksdjk nginx
sdjks nginx nginx
3)替换光标所在行到末尾行的第一个nginx为TTT(光标在第二行)
:.,$s/nginx/TTT
nginx nginx dsd nginx
TTT jksdjk nginx
sdjks TTT nginx
4)替换光标所在行到末尾行的所有nginx为TTT(光标在第二行)
:.,$s/nginx/TTT/g
nginx nginx dsd nginx
TTT jksdjk TTT
sdjks TTT TTT
等价于::2,$s/nginx/TTT
nginx nginx dsd nginx
TTT jksdjk nginx
sdjks TTT nginx
5)替换所有行的第一个nginx为TTT
:%s/nginx/TTT
TTT nginx dsd nginx
TTT jksdjk nginx
sdjks TTT nginx
6)替换所有行的所有nginx为TTT
:%s/nginx/TTT/g
TTT TTT dsd TTT
TTT jksdjk TTT
sdjks TTT TTT
%s 指定范围替换没有效果,仍然是全局替换:

c语言保存字符串到txt文件

    FILE *fp_3d;
    fp_3d = fopen("/home/szhang/project/segmentation/github/single_test_mjf/tevs_v2/Debug/654/file_3d.txt","a");
    for (long f = 0; f < nbFrames; f++) {
 
      int lane_index[2] = {4,5};
      if(tr_out.t_lane_out.b_enable_flag!=0)
      {
        for(int i = 0; i < 2; i++){
          if(tr_out.t_lane_out.at_lane_marker[lane_index[i]].b_virtual != 0 || tr_out.t_lane_out.at_lane_marker[lane_index[i]].b_valid != 1)
          {
            continue;
          }
          char s_3d[1000];
          sprintf(s_3d, "BANMA_ADAS:id:%lld,lane %d,point %d:x:%.2f,y:%.2f,z:%.2f", f, lane_index[i], 0, \
          tr_out.t_lane_out.at_lane_marker[lane_index[i]].shape_points_3d[0].x, tr_out.t_lane_out.at_lane_marker[lane_index[i]].shape_points_3d[0].y, tr_out.t_lane_out.at_lane_marker[lane_index[i]].shape_points_3d[0].z);
          printf("%s\n",s_3d);
          fprintf(fp_3d,"%s\n",s_3d);  //字符串使用%s
        }
      }
     }
   	fclose(fp_3d);

最后打印出的结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值