Löschen Sie eine Zeile schneller als [0] [d] [$]


18

Gibt es eine schnellere Möglichkeit, den Text in einer Zeile zu löschen als

  • Drücken Sie 0, um zum Start zu springen
  • drücken d$, um bis zum Zeilenende zu löschen?

Was ist auch, wenn ich alles außer dem Einzug löschen möchte ? Gibt es eine Möglichkeit, das zu tun?

Antworten:


34

Wie Sie sagten, gibt es mehrere Möglichkeiten, und Sie können auch berücksichtigen, was Ihre nächste Aktion sein wird, nachdem Sie die aktuelle Zeile gelöscht oder gelöscht haben.

  1. dd löscht die aktuelle Zeile (nicht löschen)
  2. 0D löscht die aktuelle Zeile einschließlich Leerzeichen
  3. ^Dlöscht die aktuelle Zeile ohne Leerzeichen ( ^dg_spart Leerzeichen)
  4. 0C löscht die aktuelle Zeile einschließlich Leerzeichen und versetzt Sie in den Einfügemodus
  5. ^Clöscht die aktuelle Zeile ohne Leerzeichen und versetzt Sie in den Einfügemodus ( ^cg_spart Leerzeichen)

ccoder Sfunktioniert entweder als 4. oder als 5., wenn 'autoindent' ausgeschaltet bzw. eingeschaltet ist.

Verwenden Sie also alles, was zur jeweiligen Aktion passt. Ich glaube, das 0Dist der schnellste Weg, um die Linie zu räumen, aber Sie können das auf Wunsch auf etwas abbilden, um es noch schneller zu machen.


7
@ SuperScript Sist ein Synonym fürcc
FDinoff

1
Vielen Dank für die tolle Antwort, @akshay; TYLTK es ist mit den Besten auf: vi.stackexchange.com/…
Robbie Wxyz

9

Ja. Wenn es eine Sache gibt, die ich an Vim mag, ist es, dass die Antwort auf "Kann ich das tun?" ist fast immer ein nachdrückliches ja .

0D Springt zum Anfang und löscht dann das Ende der Zeile.

^D (nicht Strg + D) springt zum ersten Nicht-Leerzeichen und löscht es bis zum Ende.

(PS: Ich habe das gerade herausgefunden und wollte es mit anderen Noobs teilen. Bitte lass es mich wissen, wenn es einen besseren Weg gibt.)


6

Deaktivieren der Leitung mit einem (verschoben) Schlüssel: S.

Dadurch bleibt auch der Einzug erhalten.

Sie wechseln an der ersten Stelle nach dem Einzug oder am Zeilenanfang in den Einfügemodus - genau das, was Sie brauchen, um eine Zeile zu ersetzen - daher der name S- like substitute.

:help S

["x]S   Delete [count] lines [into register x] and start
        insert.  Synonym for "cc" |linewise|.

["x]cc  Delete [count] lines [into register x] and start
        insert |linewise|.  If 'autoindent' is on, preserve
        the indent of the first line.

Sist ein toller Schlüssel.
domi91c

3

Mit dem " vim-textobj-line " -Plugin von Kana können Sie Operationen für eingerückte Zeilen mit il(z. B. dil) oder für ganze Zeilen ohne die neue Zeile mit al(z yal. B. ) verwenden. Der Vorteil dieses Ansatzes ist subtil: Statt zu denken, die beiden Bewegungen (Anfang, Ende) für die gewünschte Operation, können Sie das Text-Objekt angeben , direkt : i n l ine, ein l ine.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.