Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 需要在每行中复制文本并添加等号和前缀_Vim - Fatal编程技术网

Vim 需要在每行中复制文本并添加等号和前缀

Vim 需要在每行中复制文本并添加等号和前缀,vim,Vim,这是我的文字: xxx yyy zzz 我希望它是以下文本: xxx = C.xxx yyy = C.yyy zzz = C.zzz 这可以在Vim中执行吗?选择文本,然后按:并键入 s/\(.*\)/\1 = C.\1/ 键入以下内容: :%s/\(.*\)/\1 = c.\1/g 细分: %-在所有线路上工作 \(.*)-捕获组(“组1”)中的所有字符 s/PATTERN/REPLACEMENT/g-执行字符串替换 替换模式中的\1-参考匹配的组 您也可以使用更简单的形式: :%s

这是我的文字:

xxx
yyy
zzz
我希望它是以下文本:

xxx = C.xxx
yyy = C.yyy
zzz = C.zzz

这可以在Vim中执行吗?

选择文本,然后按
并键入

s/\(.*\)/\1 = C.\1/
键入以下内容:

:%s/\(.*\)/\1 = c.\1/g
细分:

  • %
    -在所有线路上工作
  • \(.*)
    -捕获组(“组1”)中的所有字符
  • s/PATTERN/REPLACEMENT/g
    -执行字符串替换
  • 替换模式中的
    \1
    -参考匹配的组

    • 您也可以使用更简单的形式:

      :%s/.*/& = C.&
      

      您不需要
      ^
      $
      。根据要复制的内容是否位于行的开头,在第一个
      /
      之后填充
      \s*\zs
      可能会很方便,以便保留前导空格。这有助于我获得替换。太棒了。轻微修正:
      :%s/*/&=C.&/
      。刚刚添加了结束符
      /
      @mpetti如果您没有标志,则根本不需要:-D它肯定更完整,但我在这里留待Breviti。我需要这样的东西来处理多行:
      %string%
      string=%string%