Ich mag /* ... */
(C ansi Kommentare), also hier ist es mein Trick für dich. Sie können es natürlich anpassen, um es in verschiedenen Fällen zu verwenden.
Kommentar mit / * ... * /
Wählen Sie den Text aus (gehen Sie zum Anfang, starten Sie den visuellen Block, springen Sie mit }
):
<c-V>}
Geben Sie den Befehl ein, der in der Auswahl angewendet werden soll
:norm i/* <c-v><esc>$a */
Der Befehl sieht folgendermaßen aus: :'<,'>norm i /* ^[$a */
Siehe (i *) für Details.
Kommentieren Sie das / * ... * / aus
Wählen Sie den Text aus (wie zuvor oder auf andere Weise):
<c-V>}
Geben Sie den Befehl ein, der in der Auswahl angewendet werden soll
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
Der Befehl sieht folgendermaßen aus: :'<,'>norm :s-\s*/\*\s*-^M$bbld$
Siehe (ii *) für Details.
Ergebnis
Effekt ist Kommentare Zeile für Zeile:
Comment block
Comment block
Comment block
Wird (und umgekehrt):
/* Comment block */
/* Comment block */
/* Comment block */
Es ist besser, es als etwas map
oder @reg
in Ihrem zu speichern .vimrc
, weil es viel zu tippen ist. Wenn Sie einen einzelnen /*
und */
den gesamten Block bevorzugen , verwenden Sie:
Kommentar mit einem einzelnen / * * / den gesamten Block
Speichern Sie es in einem Register, indem Sie es beispielsweise qc
am Anfang eines Absatzes aufzeichnen , um zu kommentieren:
v}di/* */<esc>hhhp
und vergiss nicht noch q
einmal, um die Aufnahme zu beenden.
Siehe (iii *) für Details.
Kommentieren Sie ein einzelnes / * * / aus einem Block aus
Speichern Sie es beispielsweise im Register @u
. Platzieren Sie den Cursor an einer beliebigen Stelle im Block und:
?/\*<enter>xx/\*/<enter>xx
Speichern Sie das Register, indem Sie den q
Befehl beenden .
Siehe (iv *) für Details.
Ergebnis
Effekt ist ein einzelner Kommentar für mehrere Zeilen:
Comment block
Comment block
Comment block
Wird (und umgekehrt):
/* Comment block
Comment block
Comment block */
Erklärungen
(i *) Es funktioniert, indem norm
der Befehl in jeder ausgewählten Zeile wiederholt angewendet wird. Der Befehl fügt einfach a ein /*
, findet das Ende dieser Zeile und endet mit dem Einfügen von a*/
:norm i/* <c-v><esc>$a */
(ii *) Es wird auch verwendet norm
, um das Suchen / Ersetzen in jeder Zeile zu wiederholen. Suche spaces /* spaces
und ersetze durch nichts. Danach findet das Ende der Zeile, zwei Wörter zurück, rechts einen Buchstaben, bis zum Ende löschen.
:norm :s-\s*/\*\s*-<c-v><enter>$bbld$
(iii *) Wählt den Absatz durch aus v}
, löscht ihn, fügt einen Kommentar zum Öffnen und Schließen ein, bewegt sich in die Mitte und fügt den gelöschten Block ein.
v}di/* */<esc>hhhp
(iv *) Irgendwo in der Mitte findet rückwärts a /*
, löscht es; findet vorwärts a */
, löscht es.
?/\*<enter>xx/\*/<enter>xx