137 votes

Sauter à une adéquation entre les balises XML dans Vim

Vim `` opérateur saute à une adéquation entre parenthèses, commenter les extrémités et quelques autres choses. Il n’est pas, cependant, correspondent balises XML (ou toute autre référence, au meilleur de ma connaissance).

Quelle est la meilleure façon d’accéder à la balise XML correspondante à l’aide de Vim ?

Remarque : Ce que j’ai vraiment envie de le faire est de dupliquer une section dans un fichier XML sans chercher manuellement la balise correspondante.

235voto

Robert Lujo Points 2743

Vous pouvez le faire sans plugins supplémentaires:

  • placez le curseur sur l'étiquette
  • v + a + t - allons sélectionner le (extérieure) et la balise de placer le curseur sur la fin
  • une fois que vous avez votre sélection, vous pouvez basculer entre le haut et le bas avec un "o" (mise à jour basé sur Michael Gruber note)
  • c - modifier ou y copier ou escape pour quitter le mode visuel ...

Une autre utilité de l'opération est: v + i + t - permettra de sélectionner le contenu de la balise (intérieure)

Référence: http://superuser.com/questions/182355/how-can-i-select-an-html-tags-content-in-vim

Référence Vim (merci à @Geek pour le signaler):

:help visual-operators

vous obtiendrez:

4. Operating on the Visual area             *visual-operators*

The objects that can be used are:
    ...
    at  a <tag> </tag> block (with tags)        |v_at|
    it  inner <tag> </tag> block            |v_it|
    ...

72voto

sykora Points 30290

Il y a un plugin de vim, appelé matchit.vim. Vous pouvez le trouver ici : http://www.vim.org/scripts/script.php?script_id=39 . Il a été créé assez bien le but exact que vous décrivez.

Installer cela, placez votre curseur sur le corps de la balise (pas le , sinon il va correspondre à ceux) et presse % pour passer à l’autre balise. Voir la page du script pour savoir de quoi il correspond.

36voto

Codie CodeMonkey Points 3936

L'OP a déclaré que ce qu'il voulait vraiment faire, c'est de la copie d'un article de XML sans avoir à trouver la balise correspondante. Ceci se fait facilement en mode normal avec yat<motion>p, ce qui ramène le texte à l'intérieur et y compris les étiquettes correspondantes, puis les pâtes. yit<motion>p est presque le même, mais il ne comprend pas l'extérieur des balises.

Le " y " de la chaîne est bien sûr le mode normal "yank" de commande. (:help y)

a ou i peut être utilisé pour la sélection d'un objet après un opérateur tel que y ou à l'intérieur d'une sélection visuelle. Le symbole après a ou i spécifie ce qui doit être sélectionné. Le type d'objet t utilisé ici indique un document SGML tag. (:help object-select).

Bien sûr, <motion> seulement des moyens pour déplacer quelque part par le moyen de votre choix et en p met l'arracha du texte à cet endroit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X