513 Stimmen

Wie man Text am Anfang einer mehrzeiligen Auswahl in vi/Vim einfügt

Sur Vim Wie füge ich Zeichen am Anfang jeder Zeile in einer Auswahl ein?

Ich möchte zum Beispiel einen Codeblock auskommentieren, indem ich Folgendes voranstelle // am Anfang jeder Zeile, vorausgesetzt, das Kommentarsystem meiner Sprache erlaubt keine Blockkommentare wie /* */ . Wie würde ich das machen?

27voto

Jar-jarhead Punkte 259

Dies fügt hinzu # am Anfang einer jeden Zeile:

:%s/^/#/

Und die Leute werden aufhören, sich darüber zu beschweren, dass Ihre Skripte nicht richtig kommentiert werden.

16voto

Lucas Oman Punkte 15159

Wenn Sie es ganz genau wissen wollen, fügen Sie dies in Ihre .vimrc ein:

vmap \c :s!^!//!<CR>
vmap \u :s!^//!!<CR>

Dann können Sie, wann immer Sie im visuellen Modus sind, auf \c a c den Block zu kommentieren und \u a u nkommentieren. Natürlich können Sie diese Tastenkombinationen in beliebige andere Tastenkombinationen ändern.

14voto

Brian Carper Punkte 68444

Eine andere Möglichkeit:

:'<,'>g/^/norm I//

/^/ ist nur ein Dummy-Muster, das auf jede Zeile passt. norm können Sie die folgenden Befehle im normalen Modus ausführen. I// besagt, dass der Einfügemodus aktiviert werden soll, während der Cursor an den Anfang der Zeile springt, und dann der folgende Text (zwei Schrägstriche) eingefügt werden soll.

:g ist oft praktisch, wenn man etwas Komplexes in mehreren Zeilen machen will, wenn man zwischen mehreren Modi hin- und herspringen, Zeilen löschen oder hinzufügen, den Cursor herumbewegen, eine Reihe von Makros ausführen will usw. Außerdem können Sie festlegen, dass nur Zeilen bearbeitet werden, die einem bestimmten Muster entsprechen.

7voto

Mac Punkte 61

Einfügen von "ABC" am Anfang jeder Zeile:

  1. In den Befehlsmodus wechseln

  2. % norm I ABC

3voto

Kevin Punkte 1070

Für die Kommentierung von Codeblöcken mag ich die NERD-Kommentator Plugin.

Wählen Sie einen Text aus:

Shift-V
...select the lines of text you want to comment....

Kommentar:

,cc

Unkommentiert:

,cu

Oder schalten Sie einfach den Kommentarstatus einer Zeile oder eines Blocks um:

,c<space>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X