¿Por qué el cambio de vim script dentro del área visual no funciona?

0

Diga una página web como esta:

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

Intenté agregar class = "cls" a & lt; p & gt; s dentro de & lt; div class = "block" & gt ;, así que hice:

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

pero esto no funcionaría como se esperaba: esos & lt; p & gt; s fuera de & lt; div class = "block" & gt; también ha cambiado En la ventana de comando estas líneas funcionan totalmente, ¿por qué no juntas?

avalan_che
fuente

Respuestas:

0

Después de la normal vat, la selección visual aún persiste, y la '<,'> Las marcas todavía se refieren a la anterior. Necesitas terminar el modo visual, así:

:execute "normal! vat\<Esc>"

PD: Deberías usar :noremap; hace que el mapeo sea inmune a la reasignación y la recursión.

Ingo Karkat
fuente