Mi piace /* ... */
(commenti C ansi), quindi ecco il mio trucco per te. Ovviamente puoi adattarlo per l'uso in diversi casi.
Commenta con / * ... * /
Seleziona il testo (vai all'inizio, avvia il blocco visivo, salta con }
):
<c-V>}
Digita il comando da applicare nella selezione
:norm i/* <c-v><esc>$a */
Il comando sarà simile a: :'<,'>norm i /* ^[$a */
Vedi (i *) per i dettagli.
Annulla commento / / ... * /
Seleziona il testo (come prima o in altro modo):
<c-V>}
Digita il comando da applicare nella selezione
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
Il comando sarà simile a: :'<,'>norm :s-\s*/\*\s*-^M$bbld$
Vedere (ii *) per i dettagli.
Risultato
L'effetto è commenti riga per riga:
Comment block
Comment block
Comment block
Diventa (e viceversa):
/* Comment block */
/* Comment block */
/* Comment block */
È meglio salvarlo come alcuni map
o @reg
nel tuo .vimrc
, perché è molto da digitare. Se preferisci un singolo /*
e */
l'intero blocco, usa:
Commenta con un singolo / * * / l'intero blocco
Salvalo in un registro registrando con, diciamo qc
, quindi, all'inizio di un paragrafo per commentare:
v}di/* */<esc>hhhp
e non dimenticare di q
nuovo, per finire il disco.
Vedi (iii *) per i dettagli.
Sblocca un singolo / * * / da un blocco
Salva nel registro, ad esempio, @u
. Posiziona il cursore ovunque all'interno del blocco e:
?/\*<enter>xx/\*/<enter>xx
Salvare il registro finendo q
comando.
Vedere (iv *) per i dettagli.
Risultato
Effect è un singolo commento per più righe:
Comment block
Comment block
Comment block
Diventa (e viceversa):
/* Comment block
Comment block
Comment block */
spiegazioni
(i *) Funziona usando norm
quale applica ripetutamente lo stesso comando in ogni riga selezionata. Il comando inserisce semplicemente a /*
, trova la fine di quella riga e termina inserendo a*/
:norm i/* <c-v><esc>$a */
(ii *) Utilizza anche norm
per ripetere la ricerca / sostituzione su ogni riga. Cerca spaces /* spaces
e sostituisci con niente. Successivamente, trova la fine della riga, torna indietro di due parole, a destra una lettera, elimina fino alla fine.
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
(iii *) Seleziona il paragrafo con v}
, eliminalo, inserisci un commento aperto e chiuso, sposta al centro e incolla il blocco cancellato.
v}di/* */<esc>hhhp
(iv *) Ovunque nel mezzo, trova indietro a /*
, lo elimina; trova avanti a */
, lo elimina.
?/\*<enter>xx/\*/<enter>xx