Я в настоящее время застрял в vim, пытаясь найти поиск/замену oneliner, чтобы заменить число другим приращением для каждой новой итерации = когда найдет новое совпадение.Vim search replace regex + incremental function
Я работаю в xml svg-коде для пакетных файлов процессов Inkscape не может обрабатывать текст (простая текстовая ошибка svg).
<tspan
x="938.91315"
y="783.20563"
id="tspan13017"
style="font-weight:bold">Text1:</tspan><tspan
x="938.91315"
y="833.20563"
id="tspan13019">Text2</tspan><tspan
x="938.91315"
y="883.20563"
id="tspan13021">✗Text3</tspan>
т.д.
Так что я хочу сделать, это изменить, что к такому результату:
<tspan
x="938.91315"
y="200"
id="tspan13017"
style="font-weight:bold">Text1:</tspan><tspan
x="938.91315"
y="240"
id="tspan13019">Text2</tspan><tspan
x="938.91315"
y="280"
id="tspan13021">✗Text3</tspan>
т.д.
Так я duckducked и нашел лучший ВИМ советы ресурс от zzapper, но я не могу этого понять:
конвертировать yy в 10,11,12:
: пусть i = 10 | 'А' BG/Abc/s/уу/\ = я/| пусть я = я + 1
Затем я приспособил его к чему-то я могу понять и должен работать в своем родном Vim:
:let i=300 | 327,$ smagic ! y=\"[0-9]\+.[0-9]\+\" ! \=i ! g | let i=i+50
Но почему-то это не петля, все это я получаю, что:
<tspan
x="938.91315"
300
id="tspan13017"
style="font-weight:bold">Text1:</tspan><tspan
x="938.91315"
300
id="tspan13019">Text2</tspan><tspan
x="938.91315"
300
id="tspan13021">✗Text3</tspan>
Так вот я серьезно застрял. Я не могу понять, что не работает:
- Моя адаптация оригинальной формулы?
- Мое расположение данных?
- My .vimrc?
Я попытаюсь найти другие ресурсы самостоятельно, но на такой трюк они довольно редко встречаются и, как и в советах zzapper, не всегда доставлены с помощью руководства.
Спасибо! Работает отлично! И ваши объяснения помогли мне расширить мою неуклюжую формулу, как только я понял, что это: команда g, которая позволяет поведение цикла. Тогда мое предложение: пусть i = 300 | 323, $ g/y = "/ smagic! [0-9] \ +. [0-9] \ +! \ = I! G | пусть i + = 50 Я скажу так же, как и ответ, для тех, меня, кто потерян, когда слишком много писем и обратного сбрасывания;) –