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?

922voto

pixelbeat Punkte 28985
  • Presse Esc um in den "Befehlsmodus" zu gelangen
  • Utilisez Ctrl + V um in den visuellen Blockmodus zu gelangen
  • Verschieben Up / Down um die Textspalten in den Zeilen zu markieren, die Sie kommentieren.
  • Dann drücken Sie Shift + i und geben Sie den Text ein, den Sie einfügen möchten.
  • Dann drücken Sie Esc , warten Sie 1 Sekunde und der eingefügte Text wird in jeder Zeile erscheinen.

Weitere Informationen und Lektüre finden Sie unter " Einfügen von Text in mehreren Zeilen " im Vim Tips Wiki.

221voto

Tomalak Punkte 320467

Dies ersetzt den Anfang von jede Zeile mit "//":

:%s!^!//!

Dies ersetzt den Anfang von jede ausgewählte Zeile (zum Auswählen den visuellen Modus verwenden) mit "//":

:'<,'>s!^!//!

Hinweis dass gv (im normalen Modus) stellt die letzte visuelle Auswahl wieder her, was von Zeit zu Zeit sehr nützlich ist.

103voto

cyber-monk Punkte 5330

Das allgemeine Muster für Suchen und Ersetzen ist:

:s/search/replace/

Ersetzt das erste Vorkommen von 'search' durch 'replace' in der aktuellen Zeile

:s/search/replace/g

Ersetzt alle Vorkommen von 'search' durch 'replace' in der aktuellen Zeile, 'g' ist die Abkürzung für 'global'.

Dieser Befehl ersetzt jedes Vorkommen von "search" durch "replace" nur in der aktuellen Zeile. Das % wird für die Suche in der gesamten Datei verwendet. Zur Bestätigung jeder Ersetzung fügen Sie interaktiv ein "c" für confirm ein:

:%s/search/replace/c

Interaktive Bestätigung der Ersetzung von "Suchen" 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) :

:14,20s/^/#/

Fügt ein '#'-Zeichen am Anfang der Zeilen 14-20 ein

Wenn Sie ein anderes Kommentarzeichen (z. B. //) verwenden möchten, ändern Sie das Begrenzungszeichen für Ihren Befehl:

:14,20s!^!//!

Einfügen einer '//'-Zeichenfolge am Anfang der Zeilen 14-20

Sie können aber auch einfach die //-Zeichen ausblenden:

:14,20s/^/\/\//

Einfügen einer '//'-Zeichenfolge am Anfang der Zeilen 14-20

Wenn Sie in Ihrem Editor keine Zeilennummern sehen, geben Sie einfach Folgendes ein

:set nu

49voto

ninegrid Punkte 1753

Eine andere Möglichkeit, die für Neueinsteiger einfacher sein könnte:

 some
 code
 here

Setzen Sie den Cursor auf die erste Zeile, z. B. durch

gg

und geben Sie das Folgende ein, um in den Einfügemodus zu gelangen und Ihren Text einzufügen:

I / / Space

 // some
 code
 here

Presse Esc um wieder in den Befehlsmodus zu gelangen und den Digraphen zu verwenden:

j . j .

 // some
 // code
 //here

j ist ein Bewegungsbefehl, um eine Zeile nach unten zu gehen und . wiederholt den letzten Bearbeitungsbefehl, den Sie gegeben haben.

29voto

Yewge Punkte 1774

Und noch eine andere Möglichkeit:

  • An den Anfang einer Zeile gehen
  • den Modus Visual Block ( CTRL - v )
  • wählen Sie die gewünschten Zeilen aus (nach oben/unten bewegen mit j / k oder das Springen zu einer Zeile mit [Zeile] G )
  • Presse I (das ist ein großes i)
  • Geben Sie das/die Kommentarzeichen ein
  • Presse ESC

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