目前的展望;
P12104001;example_01_01,
P12104002;example_02_01,
P12104003;example_03_01,
P12104004;example_04_01,
我希望有;
<example_01_01>,
<example_02_01>,
<example_03_01>,
<example_04_01>,
请建议在 gvim 中使用替换的选项(以便我只能替换标记区域中的字符串。示例如下:'a,'b s \*******\<******>
)
答案1
要从
P12104001;example_01_01,
P12104002;example_02_01,
P12104003;example_03_01,
P12104004;example_04_01,
对此
P12104001;example_01_01,
<example_02_01>,
<example_03_01>,
P12104004;example_04_01,
使用
:/002/,/003/s/.*\(example_.._..\)/<\1>/
读作
: Command
/Start of section/,/End of section/
s/ substitute
.* all chars up to
\(string to remember . for wild chars\)
/< with
\1 put in the remember string
>/ rest of replacement.
在 Vim 中使用 :help address 查看寻址行范围的其他方法。
答案2
Fred Gannett 已经回答了您的问题,但要回答您的评论:
%s/.*\(example_\d\+_\d\+\).*/<\1>,/
替换整个文件,而不对“example”后面的数字进行硬编码。如果您想限制范围,请使用视觉选择或类似的东西.,3s/.*\(example_\d\+_\d\+\).*/<\1>,/
(当前行到第三行)。
您必须确保包含正则表达式的每一行都应该被替换。