gpt4 book ai didi

regex - 在vim字符串替换新行中自动缩进?

转载 作者:行者123 更新时间:2023-12-01 00:02:35 25 4
gpt4 key购买 nike

我正在使用以下命令自动替换一些代码(在现有代码段之后添加一个新代码段)

%s/my_pattern/\0, \r some_other_text_i_want_to_insert/

问题在于 \r , some_other_text_i_want_to_insert在新行之后插入:
mycode(
some_random_text my_pattern
)

会成为
mycode(
some_random_text my_pattern
some_other_text_i_want_to_insert <--- this line is NOT indented
)

代替
mycode(
some_random_text my_pattern
some_other_text_i_want_to_insert <--- this line is now indented
)

即新插入的行没有缩进。

vim 中是否有任何选项或技巧可用于缩进新插入的行?

谢谢。

最佳答案

尝试这个:

:let @x="some_other_text_i_want_to_insert\n"
:g/my_pattern/normal "x]p

这是,一步一步:

首先,将要插入的文本放入寄存器...
:let @x="some_other_text_i_want_to_insert\n"

(注意字符串末尾的换行符——这很重要。)

接下来,使用 :global命令将文本放在每个匹配的行之后...
:g/my_pattern/normal "x]p
]p正常模式命令的工作方式与常规 p 一样命令(即,它将寄存器的内容放在当前行之后),但也会调整缩进以匹配。

更多信息:
:help ]p
:help :global
:help :normal

关于regex - 在vim字符串替换新行中自动缩进?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2732618/

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