VIM替换(替换单个、一行、全文)

  • Post author:
  • Post category:其他

替换

  • 语法

    :[range] s/{old-pattern}/{new-pattern}/[flags]
    
    • range确定范围,不写默认为当前行。
    %         # 表示整个文件内容
    .         # 表示当前行
    $         # 表示最后一行
    m,n       # 表示从第m行到第n行
    ,n        # 表示从当前行到第n行
    n,        # 表示从第n行到当前行
    n         # 指定行
    +n        # 表示当前行之后的n行
    
    • old-pattern为要被替换的字符串,new-pattern为替换后的新字符串。替换操作与搜索操作使用同样的模式串系统

    • flags为替换标志位,默认为指定范围内的行的第一次匹配的位置,帮助文档:h s_flags,常用标志如下:

    g:global,表示在指定范围内执行全局操作,替换所有匹配项
    c:confirm,可以确认或拒绝修改
    n:number,报告匹配到的次数,不替换,可用来查询匹配次数
    i:执行不区分大小写的替换
    I:执行区分大小写的替换
    e:防止替换失败时显示错误消息
    
  • 举例

    :% s/原文本/目标文本/g		# 全局替换,将原文本全部替换为目标文本
    :% s/原文本/目标文本/		# 每行第一次匹配原文本的地方替换为目标文本
    
    :% s/文本//n				# 统计指定文本在文件中出现的次数
    
    :% s/^/# /g       # 每行的行首添加注释符#
    :% s/^/\/\/ /g    # 每行的行首添加注释符//
    
  • 结合正则表达式

    :范围 s/\<文本\>/目标文本/标志	# 精确匹配指定文本,排除掉仅仅只是包含指定文本的地方
    
    :% s/\<if\>/must/g			
    

版权声明:本文为weixin_43971252原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。