Wenn ich in VIM schneide und einfüge, indem ich v
drücke und ans Ende der Zeile gehe, indem ich $
benutze und dann d
drücke, wird die nächste Zeile zur selben Zeile verschoben, die ich gerade schneide.
Wie kann ich das stoppen?
Wenn ich in VIM schneide und einfüge, indem ich v
drücke und ans Ende der Zeile gehe, indem ich $
benutze und dann d
drücke, wird die nächste Zeile zur selben Zeile verschoben, die ich gerade schneide.
Wie kann ich das stoppen?
Es bewegt sich nach oben, weil Sie alle Zeichen einschließlich Zeilenwechsel/Umbruch entfernt haben.
Wie üblich gibt es mehrere Lösungen mit Vim. Es gibt keine "eine wahre Art", aber Sie können die folgenden Befehle ausprobieren.
Sie können im normalen Modus D
(Großbuchstabe) verwenden, das alles bis zum Ende der Zeile löscht.
Siehe :help D
Verwendung einer anderen Bewegung
Was Sie anstelle von $ tun könnten, um ans Ende der Zeile zu gelangen, ist g_ zu verwenden. Es bewegt sich zum letzten nicht leeren Zeichen der Zeile und wählt keinen Zeilenwechsel aus.
Siehe :help g_
Also sollte vg_d so funktionieren, wie Sie es wollen.
Ersetzung verwenden
Alternativ könnten Sie anstelle des Ausschneidens das gelöschte Zeichen durch ein Leerzeichen ersetzen.
Also sollte v$rLEERZEICHEN funktionieren, um zu löschen, aber es wird die ersetzten Zeichen nicht im Register speichern (zum späteren Einfügen zum Beispiel).
Um alles ab der aktuellen Cursorposition bis zum Ende zu schneiden, verwenden Sie C.
:he C
wird Ihnen helfen:
Löschen Sie von der Cursorposition bis zum Ende der Zeile und [count]-1 weitere Zeilen [in Register x] und starten Sie das Einfügen. Synonym für c$ (nicht |zeilenweise|).
Wenn Sie dies tun, wird die aktuelle Zeile (vorausgesetzt, Sie befinden sich am Anfang der Zeile, wenn Sie C drücken) leer werden und der Inhalt (standardmäßig) in das Register "
kopiert.
Bearbeiten: Wie Xavier in seinem Kommentar (und seiner Antwort) anmerkt, könnte das Gleiche mit D erreicht werden. Es schneidet auch alles ab der aktuellen Cursorposition bis zum Ende der Zeile, geht jedoch nach dem Schneiden nicht in den Einfügemodus über.
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.