Скажи такую страницу:

...
<div class="block">
    <p>...</p>
    <p>...</p>
</div>
<p>...</p>
...

Я попытался добавить class = "cls" в <p> внутри <div class = "block">, поэтому я сделал:

while search('div class="block"','W') > 0
    normal vat    
    '<,'>s@<p>@<p class="cls">@gec
endw

но это не сработает так, как ожидалось: те <p>, которые находятся за пределами <div class = "block">, тоже изменились. В командной строке эти строки полностью работают, почему бы не собрать вместе?

1 ответ1

0

После normal vat визуальный выбор все еще сохраняется, а метки '<,'> относятся к предыдущему. Вам нужно завершить визуальный режим, например так:

:execute "normal! vat\<Esc>"

PS: Вы должны использовать :noremap ; это делает отображение невосприимчивым к переназначению и рекурсии.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .