pourquoi le script vim ne change-t-il pas dans la zone visuelle?


0

Dites une page Web comme celle-ci:

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

J'ai essayé d'ajouter class = "cls" à & lt; p & gt; s à l'intérieur de & lt; div class = "block" & gt ;, je l'ai donc fait:

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

mais cela ne fonctionnerait pas comme prévu: les & lt; p & gt; s situés en dehors de & lt; div class = "block" & gt; a changé aussi. Dans la fenêtre de commande, ces lignes fonctionnent totalement. Pourquoi ne pas les assembler?

Réponses:


0

Après le normal vat, la sélection visuelle persiste et la '<,'> les marques font toujours référence à la précédente. Vous devez mettre fin au mode visuel, comme ceci:

:execute "normal! vat\<Esc>"

PS: Tu devrais utiliser :noremap; cela rend le mappage immunisé contre le remappage et la récursion.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.