469 Stimmen

Vim: Einfügen von gleichen Zeichen über mehrere Zeilen

Manchmal möchte ich einen bestimmten visuellen Textblock über mehrere Zeilen hinweg bearbeiten.

Ich würde zum Beispiel einen Text nehmen, der wie folgt aussieht:

name
comment
phone
email

Und das sieht dann so aus

vendor_name
vendor_comment
vendor_phone
vendor_email

Derzeit würde ich es so machen, dass...

  1. Wählen Sie alle 4 Zeilen eines Blocks durch Drücken von V y luego j viermal.
  2. Einrücken mit > .
  3. Gehen Sie einen Buchstaben zurück mit h .
  4. Wechseln Sie in den visuellen Blockmodus mit Ctrlv .
  5. Wählen Sie vier Zeilen nach unten durch Drücken von j viermal. Zu diesem Zeitpunkt haben Sie einen visuellen 4x1-Block mit Leerraum (vier Zeilen und eine Spalte) ausgewählt.
  6. Presse C . Beachten Sie, dass dies ziemlich weit nach links um eine Spalte eingerückt ist.
  7. Geben Sie eine " vendor_" ohne das Zitat. Beachten Sie das zusätzliche Leerzeichen, das wir wieder einfügen mussten.
  8. Presse Esc . Dies ist eine der wenigen Gelegenheiten, in denen ich Esc um den Einfügemodus zu verlassen. Ctrlc würde nur die erste Zeile bearbeiten.
  9. Wiederholen Sie Schritt 1.
  10. Einrücken in die andere Richtung mit < .

Ich brauche keine Einrückung, wenn vor den Wörtern mindestens eine Spalte mit Leerraum vorhanden ist. Ich würde den Leerraum nicht brauchen, wenn ich den visuellen Block nicht mit c .

Aber wenn ich zu löschen, dann gibt es eine Möglichkeit, zu tun, was ich oben durchgeführt, ohne die erforderlichen Leerzeichen mit Einrückung zu schaffen?

Warum funktioniert die Bearbeitung mehrerer Zeilen auf einmal nur, wenn man den Einfügemodus mit Esc über Ctrlc ?


Hier ist ein komplizierteres Beispiel:

name    = models.CharField( max_length = 135 )
comment = models.TextField( blank = True )
phone   = models.CharField( max_length = 135, blank = True )
email   = models.EmailField( blank = True )

zu

name    = models.whatever.CharField( max_length = 135 )
comment = models.whatever.TextField( blank = True )
phone   = models.whatever.CharField( max_length = 135, blank = True )
email   = models.whatever.EmailField( blank = True )

In diesem Beispiel würde ich den vertikalen visuellen Block über die . und fügen Sie es dann im Einfügemodus wieder ein, d. h., Sie geben ein .whatever. . Ich hoffe, Sie sehen jetzt den Nachteil dieser Methode. Ich bin darauf beschränkt, nur eine Textspalte auszuwählen die in vertikaler Position alle gleich sind .

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