por que a mudança do script vim dentro da área visual não funciona?

0

Diga uma página da Web como esta:

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

Eu tentei adicionar class="cls" a < p > s dentro de < div class="block" & gt ;, então eu fiz:

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

mas isso não funcionaria como esperado: os < p > s < div class="block" > foi mudado também. Na janela de comando essas linhas funcionam totalmente, por que não montar juntas?

    
por avalan_che 26.10.2013 / 09:58

1 resposta

0

Após o normal vat , a seleção visual ainda persiste e as marcas '<,'> ainda se referem ao anterior. Você precisa finalizar o modo visual, assim:

:execute "normal! vat\<Esc>"

PS: Você deve usar :noremap ; torna o mapeamento imune ao remapeamento e à recursão.

    
por 26.10.2013 / 15:02

Tags