我得到的文字如下(它是一个sql脚本)
('63d3a510-321c-11e1-9fe7-000c2956598e', 1, 13, 'aaa', 'aa', 1309, 0),
('63d3a5ba-321c-11e1-9fe7-000c2956598e', 3, 34, 'bbb', 'bb', 3402, 1),
('63d3a6aa-321c-11e1-9fe7-000c2956598e', 3, 34, 'ccc', 'cc', 3403, 1),
我需要用uuid()替换所有uuids。
我怎么能在vim中做到这一点?
答案 0 :(得分:4)
如果您的所有线条形状相同,则会执行以下操作:
:%s,'[^']\+',uuid(),
在命令模式下。
(是的,我使用,
而不是更经典的/
作为分隔符,但它也可以正常工作 - 并且更容易在azerty键盘布局上键入:))
答案 1 :(得分:4)
精确匹配uuid
更安全:
:%s/'[-[:xdigit:]]\{36}'/uuid()/g
答案 2 :(得分:1)
如果它们很少,我会使用.
重复上一次更改。
lca'uuid()<ESC>j.j.
说明:
l # One position right to set cursor inside '...'
ca' # Change content between '...'
uuid() # Write literal string.
<ESC> # Press <ESC> key to exit insert mode and return to normal mode.
j. # Move one line down and repeat last change.
j. # Move to last line and repeat last change.
答案 3 :(得分:1)
[简单方法]在这种特殊情况下(列对齐)我会使用视觉块模式:
其中“&lt; C-v&gt;(select)I”允许在每个选定的行中插入相同的文本。