如何在VIM中替换表达式
我想把搜索到的表达式替换为 例如: 我正在使用表达式进行搜索:如何在VIM中替换表达式,vim,regex,sed,Vim,Regex,Sed,我想把搜索到的表达式替换为 例如: 我正在使用表达式进行搜索:/0x..-->它将搜索格式为的所有字符串 0x0001,0x0002,0x1234等 现在,我想用类似于0x0001\u mystring,0x0002\u mystring,0x1234\u mystring等内容替换上述搜索项。使用以下ex命令: :%s/0x\x*/&_mystring/g \x匹配六位数字符。相当于[0-9A-Fa-f] &将替换为整个匹配模式 参考:\x(很抱歉,不喜欢URL中的\)使用替换命
/0x..
-->它将搜索格式为的所有字符串
0x0001
,0x0002
,0x1234
等
现在,我想用类似于
0x0001\u mystring
,0x0002\u mystring
,0x1234\u mystring
等内容替换上述搜索项。使用以下ex命令:
:%s/0x\x*/&_mystring/g
匹配六位数字符。相当于\x
[0-9A-Fa-f]
将替换为整个匹配模式&
参考:\x(很抱歉,不喜欢URL中的
\
)使用替换命令:
:%s/0x..../&_mystring/g
语法类似于
%s
将搜索整个文档,如果只想在光标所在的行中搜索和替换,请使用:s/..
,如果要在第5到10行中搜索和替换,请使用:5,10s/..
0x..
是要搜索的对象
&\u mystring
将搜索模式替换为自身(&
),并添加\u mystring
标志
g
告诉vim对特定行上的每一个匹配项都这样做,否则它只替换每一行上的第一个匹配项。我将在末尾添加/g,因为他正在查找此格式的所有字符串。@EarlOfEgo,感谢您指出这一点。我根据你的说法修复了它。你可以使用\x
原子而不是[0-9A-Fa-f]
@IngoKarkat,我不知道。谢谢你的评论。我将答案更新为使用\x
。这非常基本。了解如何查找命令和导航内置的:help
;它是全面的,并提供了许多提示。你学习Vim的速度不会像其他编辑器那样快,但如果你致力于持续学习,它将证明是一个非常强大和高效的编辑器。感谢@IngoKarkat,我试图获得:帮助,但我迷路了,感到困惑。那么试试:vimtutor
。这只适用于每个十六进制数正好有四位数字的情况……这正是OP要求的。没有必要投否决票。