如何使用Vim进行搜索和替换?

sulc1iza  于 2023-11-19  发布在  其他
关注(0)|答案(4)|浏览(165)

我有一个包含这些行的文本文件:
[15]=new Option(“text1”,“25”);
[16]=new Option(“text2”,“23”);
[17]=new Option(“text3”,“12”);
(and关于我们
如何用文本#替换每一行?例如,第一行应该用text 1替换,第二行用text 2替换,等等。

a11xaf1n

a11xaf1n1#

作为:s的替代品并使用宏,我有时会发现:normal非常令人愉快。

%norm df"f"d$

字符串
我们可以缩短它,但使用;运动,它将重复f"运动,并使用D,它与d$相同

%norm df";D

mrphzbgm

mrphzbgm2#

读取:h /\(

%s/\Voptions[\d\+]=new Option("\(text\d\+\)","\d\+");/\1/g

字符串

rfbsl7qr

rfbsl7qr3#

看起来你已经在源代码中有了它们。假设你有这样的行:
[15]=new Option(“text#",“25”);
...
你想改成这样:
[15]=new Option(“15”,“25”);
...
下面是您要做的:将第一行改为text 1,然后yank“text 1”

create a macro (qq)
/text
dw
p
ctrl+a
b
vwly
q

字符串
然后如果你有25行:做23@q
23次调用宏,因为您已经手动执行了前两次。

v6ylcynt

v6ylcynt4#

这个正则表达式也应该工作:

:%s/^.\{-}\(".\{-}"\).*/\1

字符串
部分^.\{-}匹配所有内容,直到组\(".\{-}"\),保留目标文本,最后\1进行替换。

相关问题