Wie füge ich in Vim Zeichen am Anfang jeder Zeile in eine Auswahl ein?
Zum Beispiel möchte ich einen Codeblock auskommentieren, indem ich //
am Anfang jeder Zeile voranstelle , vorausgesetzt, das Kommentarsystem meiner Sprache erlaubt keine Blockkommentare wie /* */
. Wie würde ich das machen?
Shift + v
nicht gedrücktCTRL + v
. @ vkaul11 Wahrscheinlich das gleiche, was Sie getan haben lolDies ersetzt den Anfang jeder Zeile durch "//":
Dies ersetzt den Anfang jeder ausgewählten Zeile (verwenden Sie den visuellen Modus zur Auswahl) durch "//":
Beachten Sie, dass
gv
(im normalen Modus) die letzte visuelle Auswahl wiederhergestellt wird. Dies ist von Zeit zu Zeit nützlich.quelle
/
und die zu entkommen, die//
in:s/^/\/\/
anstatt zu schreiben:s!^!//
)Das allgemeine Muster für das Suchen und Ersetzen lautet:
Ersetzt das erste Vorkommen von 'Suche' durch 'Ersetzen' für die aktuelle Zeile
Ersetzt alle Vorkommen von 'Suche' durch 'Ersetzen' für die aktuelle Zeile, 'g' steht für 'global'.
Dieser Befehl ersetzt jedes Vorkommen von 'Suche' durch 'Ersetzen' nur für die aktuelle Zeile. Mit% wird die gesamte Datei durchsucht. Um jeden Austausch interaktiv zu bestätigen, fügen Sie zur Bestätigung ein 'c' hinzu:
Interaktiv Bestätigen Sie das Ersetzen von 'Suche' durch 'Ersetzen' für die gesamte Datei
Anstelle des% -Zeichens können Sie einen Zeilennummernbereich verwenden (beachten Sie, dass das Zeichen '^' ein spezielles Suchzeichen für den Zeilenanfang ist) :
Fügt am Anfang der Zeilen 14-20 ein '#' ein
Wenn Sie ein anderes Kommentarzeichen (wie //) verwenden möchten, ändern Sie Ihr Befehlsbegrenzer:
Fügt am Anfang der Zeilen 14-20 eine Zeichenfolge '//' ein
Oder Sie können immer einfach den // Zeichen entkommen wie:
Fügt am Anfang der Zeilen 14-20 eine Zeichenfolge '//' ein
Wenn in Ihrem Editor keine Zeilennummern angezeigt werden, geben Sie einfach Folgendes ein
quelle
#
in der Zeile ersetzen . Sie sollten^#
stattdessen verwenden.Ein anderer Weg, der für Neulinge einfacher sein könnte:
Platzieren Sie den Cursor in der ersten Zeile, z
gg
und geben Sie Folgendes ein, um in den Einfügemodus zu gelangen und Ihren Text hinzuzufügen:
I / / Space
Drücken Sie Esc, um zum Befehlsmodus zurückzukehren und den Digraphen zu verwenden:
j . j .
jist ein Bewegungsbefehl, um eine Zeile nach unten zu gehen und .den zuletzt bearbeiteten Bearbeitungsbefehl zu wiederholen.
quelle
|
anstelle eines Großbuchstaben einen Balken (das andere Symbol mit Ihrem \) eingebenI
. Ich dachte, es wäre|
zuerst eine.Und noch ein anderer Weg:
quelle
Dies fügt
#
am Anfang jeder Zeile hinzu:Und die Leute werden aufhören, sich über Ihren Mangel an richtig kommentierten Skripten zu beschweren.
quelle
Wenn Sie Lust darauf haben, fügen Sie dies in Ihre .vimrc ein:
Immer dann, wenn im visuellen Modus, können Sie treffen
\c
auf c omment den Block und\u
zu u ncomment es. Natürlich können Sie diese Tastenkombinationen beliebig ändern.quelle
vmap
!Noch ein anderer Weg:
/^/
ist nur ein Dummy-Muster, das zu jeder Zeile passt.norm
Mit dieser Option können Sie die folgenden Befehle im Normalmodus ausführen.I//
sagt, dass Sie in den Einfügemodus wechseln sollen, während Sie den Cursor an den Zeilenanfang bewegen, und dann den folgenden Text einfügen (zwei Schrägstriche).:g
Dies ist häufig praktisch, um komplexe Aufgaben in mehreren Zeilen auszuführen, bei denen Sie zwischen mehreren Modi wechseln, Zeilen löschen oder hinzufügen, den Cursor bewegen, eine Reihe von Makros ausführen usw. Sie können festlegen, dass nur Zeilen verwendet werden sollen ein Muster abgleichen.quelle
Zum Kommentieren von Codeblöcken gefällt mir das NERD Commenter Plugin.
Wählen Sie einen Text aus:
Kommentar:
Kommentar:
Oder schalten Sie einfach den Kommentarstatus einer Zeile oder eines Blocks um:
quelle
Ich kann das EnhCommentify- Plugin empfehlen .
z.B. lege dies zu deinem vimrc:
Sie können dann die (ausgewählten) Zeilen mit ', c' kommentieren / auskommentieren.
quelle
Markieren Sie den zu kommentierenden Bereich als visuellen Block (
<C-V
)und TU
c#<ESC>p
c
hänge es auf "#"Wenn Sie dies häufig tun, definieren Sie eine
\q
Verknüpfung (Beispiel ) in Ihrer .vimrcquelle
Wenn die mehrzeilige Auswahl einer Person tatsächlich ein Absatz ist, müssen die Zeilen nicht manuell ausgewählt werden. vim kann das für dich tun:
vip
: Wählen Sie den gesamten Absatz aus und markieren Sie ihnshift-i
: Text am Zeilenanfang einfügenescape
: Einfügemodus verlassen / Normalmodus aufrufen [Zeilenanfänge noch ausgewählt]escape
: Zeilenanfänge abwählenquelle
So fügen Sie "ABC" am Anfang jeder Zeile ein:
1) Wechseln Sie in den Befehlsmodus
2):% Norm I ABC
quelle