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 mapoder @regin 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 qcam Anfang eines Absatzes aufzeichnen , um zu kommentieren:
v}di/* */<esc>hhhp
und vergiss nicht noch qeinmal, 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 qBefehl 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 normder 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 /* spacesund 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