如何在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要求的。没有必要投否决票。