gpt4 book ai didi

Vim:对于多个文件:复制所有文本,替换并粘贴

转载 作者:行者123 更新时间:2023-12-04 18:12:36 26 4
gpt4 key购买 nike

我想使用Vim对多个文件执行以下操作:

  • 复制每个文件中的所有文本
  • 替换一些文本
  • 将复制的文本粘贴到每个文件的末尾
  • 替换其他文本

  • 这是我对一个文件的命令:
    :%y
    :%s/old1/new1/g
    :G
    :P
    :%s/old2/new2/g

    有人可以告诉我这样做的语法吗?特别是我是Vim的新手!

    我发现argdo可以在多个文件上执行命令。我发现了很多使用argdo替换文本的示例,但是我找不到使用argdo和:%y,:G或:P的语法。

    谢谢。

    最佳答案

    就像提到的@ib一样,我会使用ex命令1

    :argdo %y | %s/old1/new1/g | $pu | %s/old2/new2/g

    您也很有可能要在互斥范围内进行操作(仅在第一部分进行第一次替换,而在第二部分仅进行第二次替换):
    :argdo $mark a | %co$ | 1,'a s/old1/new1/g | 'a,$s/old2/new2/g

    要允许不匹配的替换,请添加 s///esilent!,以在文件较多的情况下更快地进行操作。
    :silent! argdo $mark a | %co$ | 1,'a s/old1/new1/ge | 'a,$s/old2/new2/ge

    1(请注意,argdo默认情况下需要一个Ex命令列表。您可以使用 argdo norm! ggyG来使用普通模式命令)

    关于Vim:对于多个文件:复制所有文本,替换并粘贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10441885/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com