Me gusta /* ... */
(comentarios de C ansi), así que aquí está mi truco para ti. Puede adaptarlo para usarlo en diferentes casos, por supuesto.
Comenta con / * ... * /
Seleccione el texto (vaya al comienzo, comience el bloque visual, salte con }
):
<c-V>}
Escriba el comando que se aplicará en la selección.
:norm i/* <c-v><esc>$a */
El comando se verá así: :'<,'>norm i /* ^[$a */
Ver (i *) para más detalles.
Descomenta el / * ... * /
Seleccione el texto (como antes, u otra forma que desee):
<c-V>}
Escriba el comando que se aplicará en la selección.
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
El comando se verá así: :'<,'>norm :s-\s*/\*\s*-^M$bbld$
Ver (ii *) para más detalles.
Resultado
El efecto es comentarios línea por línea:
Comment block
Comment block
Comment block
Se convierte (y viceversa):
/* Comment block */
/* Comment block */
/* Comment block */
Es mejor guardarlo como algo map
o @reg
en tu .vimrc
, porque es mucho para escribir. Si prefiere una sola /*
y */
que todo el bloque, utilice:
Comenta con un solo / * * / todo el bloque
Guárdelo en un registro grabando con, digamos qc
, luego, al comienzo de un párrafo para comentar:
v}di/* */<esc>hhhp
y no te olvides de q
nuevo, para terminar el disco.
Ver (iii *) para más detalles.
Descomentar un solo / * * / de un bloque
Guardar en el registro, por ejemplo, @u
. Coloque el cursor en cualquier lugar dentro del bloque y:
?/\*<enter>xx/\*/<enter>xx
Guarde el registro terminando q
comando.
Ver (iv *) para más detalles.
Resultado
El efecto es un solo comentario para varias líneas:
Comment block
Comment block
Comment block
Se convierte (y viceversa):
/* Comment block
Comment block
Comment block */
Explicaciones
(i *) Funciona mediante el uso norm
que aplica el mismo comando repetidamente en cada línea seleccionada. El comando simplemente inserta un /*
, encuentra el final de esa línea y termina insertando un*/
:norm i/* <c-v><esc>$a */
(ii *) También se utiliza norm
para repetir la búsqueda / reemplazo en cada línea. Buscar spaces /* spaces
y reemplazar por nada. Después de eso, encuentra el final de la línea, retrocede dos palabras, escribe una letra, borra hasta el final.
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
(iii *) Selecciona el párrafo por v}
, elimínelo, inserte un comentario abierto y cercano, muévalo a la mitad y pegue el bloque eliminado.
v}di/* */<esc>hhhp
(iv *) En cualquier lugar en el medio, encuentra hacia atrás a /*
, lo elimina; encuentra hacia adelante a */
, lo elimina.
?/\*<enter>xx/\*/<enter>xx