2013-11-22 72 views
0

我想替换中的搜索表达式。如何在VIM中替换表达式

例如:

我用的表达式搜索:/0x.... - >将在格式的所有字符串搜索 0x00010x00020x1234

现在,我想用0x0001_mystring,0x0002_mystring,0x1234_mystring等替换上述搜索项。

+1

这是非常基本的。学习如何查找命令并导航内置的':help';它是全面的,并提供许多技巧。你不会像其他编辑一样学习Vim,但如果你承诺不断学习,它将证明它是一个非常强大和高效的编辑器。 –

+0

谢谢@IngoKarkat我试着得到**:帮助**,但我迷路了,感到困惑。 – dkumar

+0

试试':vimtutor',然后。 – user2987828

回答

6

使用以下ex命令:

:%s/0x\x*/&_mystring/g 
  • \x比赛hexdigit字符。相当于[0-9A-Fa-f]
  • &被替换为整个匹配模式。

参考:http://vimdoc.sourceforge.net/htmldoc/pattern.html#/ \ X(对不起,SO不喜欢在URL \

+0

我会在最后加上/ g,因为他正在以这种格式查找所有字符串。 – EarlOfEgo

+0

@EarlOfEgo,感谢您指出这一点。我根据你来修复它。 – falsetru

+2

您可以使用'\ x'原子代替'[0-9A-Fa-f]'。 –

1

使用替代命令:

:%s/0x..../&_mystring/g 

该语法类似于

%s将搜索整个文档,使用:s/...如果你只想搜索,并在光标所在行更换,使用:5,10s/...如果你要搜索和替换行5〜10

0x....来搜索。 (&),并添加_mystring

标记g告诉vim为特定行上的每个出现次数执行此操作,否则它只会替换每行上的第一个匹配项。

+0

这只适用于每个十六进制数字都有四位数字的情况。 – user2987828

+0

......这正是OP要求的。没有必要downvote。 – pfnuesel