J'aime /* ... */
(commentaires C ansi), alors voici mon truc pour vous. Vous pouvez bien sûr l'adapter pour l'utiliser dans différents cas.
Commentaire avec / * ... * /
Sélectionnez le texte (allez au début, démarrez le bloc visuel, sautez avec }
):
<c-V>}
Tapez la commande à appliquer dans la sélection
:norm i/* <c-v><esc>$a */
La commande ressemblera à: :'<,'>norm i /* ^[$a */
Voir (i *) pour plus de détails.
Décommentez le / * ... * /
Sélectionnez le texte (comme précédemment, ou d'une autre manière que vous aimez):
<c-V>}
Tapez la commande à appliquer dans la sélection
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
La commande ressemblera à: :'<,'>norm :s-\s*/\*\s*-^M$bbld$
Voir (ii *) pour plus de détails.
Résultat
L'effet est des commentaires ligne par ligne:
Comment block
Comment block
Comment block
Devient (et vice-versa):
/* Comment block */
/* Comment block */
/* Comment block */
Il vaut mieux l'enregistrer en tant que certains map
ou @reg
dans votre .vimrc
, car c'est beaucoup à taper. Si vous préférez un seul /*
et */
au bloc entier, utilisez:
Commentaire avec un seul / * * / tout le bloc
Enregistrez-le dans un registre en enregistrant avec, disons qc
, puis, au début d'un paragraphe pour commenter:
v}di/* */<esc>hhhp
et n'oubliez pas q
, pour finir le record.
Voir (iii *) pour plus de détails.
Décommenter un seul / * * / d'un bloc
Enregistrez-le dans le registre, par exemple @u
. Placez votre curseur n'importe où dans le bloc et:
?/\*<enter>xx/\*/<enter>xx
Enregistrez le registre en terminant q
commande.
Voir (iv *) pour plus de détails.
Résultat
L'effet est un seul commentaire pour plusieurs lignes:
Comment block
Comment block
Comment block
Devient (et vice-versa):
/* Comment block
Comment block
Comment block */
Explications
(i *) Il fonctionne en utilisant norm
qui applique la même commande à plusieurs reprises sur chaque ligne sélectionnée. La commande insère simplement un /*
, trouve la fin de cette ligne et termine en insérant un*/
:norm i/* <c-v><esc>$a */
(ii *) Il permet également norm
de répéter la recherche / remplacement sur chaque ligne. Recherchez spaces /* spaces
et remplacez par rien. Après cela, trouve la fin de la ligne, deux mots en arrière, une lettre à droite, supprimer jusqu'à la fin.
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
(iii *) Sélectionne le paragraphe par v}
, supprimez-le, insérez un commentaire ouvert et fermé, déplacez-vous au milieu et collez le bloc supprimé.
v}di/* */<esc>hhhp
(iv *) N'importe où au milieu, trouve en arrière a /*
, le supprime; trouve un avant */
, le supprime.
?/\*<enter>xx/\*/<enter>xx