Frage vi Verknüpfung zum Löschen "bis zum nächsten X-Zeichen"


Ich verstehe, dass vi Tastenkombinationen hat, um Zeichen, Wörter und Zeilen mit verschiedenen Optionen zu löschen.

Ich konnte dies jedoch nicht finden:

  • Löschen Sie vom Cursor zum nächsten angegebenen Zeichen

Zum Beispiel könnte ich tippen du" erwartet, dass der Editor bis zum nächsten löscht " Charakter ist gefunden "

Der nächste, den ich kenne, ist d9w woher 9 ist die Anzahl der zu löschenden Wörter.

Weiß jemand, ob das möglich ist?


153
2017-10-08 15:43


Ursprung


Wenn Sie an Vi und Vim interessiert sind, haben sie jetzt ihre eigene SE-Site: Vi und Vim - dessert


Antworten:


Benutzen dtc, woher c ist irgendein Zeichen, z.B. für dich, du willst dt"

Dies wird bis aber gelöscht nicht einschließlich c.

Wenn du hättest:

delete until exclamation point!

Und der Cursor war im ersten Feld und du tippst dt!, würdest du bekommen:

delete!

Ebenfalls dfc.

Dies löscht bis zu und einschließlich c.

Verwenden df! auf dem gleichen Beispiel oben würde Ihnen geben:

delete

Fast jede "Bewegung" kann für die verwendet werden d, c, y und ähnliche Befehle.


248
2017-10-08 16:19



Genau das, was ich suchte! Danke @ Arcege! - kctang
Vermutlich ist die Mnemonic t für "bis"? Gute Antwort. - overthink
Sie können auch die vorherige Instanz eines Zeichens mit der Großbuchstabenversion der Bewegungsbefehle löschen. Vielleicht nützlicher für Kommas - dT, und dF,. - Joel Ostblom
Dies funktioniert nicht über mehrere Zeilen hinweg. - 0xcaff
Kann dies über eine Reihe von Linien gemacht werden? - Jim


  • Um vorwärts bis zum Zeichen 'X' zu löschen dtX

  • So löschen Sie den Vorwärts-Zeichen-Typ "X" dfX

  • Um rückwärts bis zum Zeichen 'X' zu löschen dTX

  • Um rückwärts durch das Zeichen 'X' zu löschen dFX


38
2018-06-02 18:02





Die Eingabe dt # (nicht a: Befehl, benutze es wie eine Bewegung wie G)

löscht den Cursor, bis er die # nicht enthält. Sie können ein beliebiges Zeichen für # ersetzen.


29
2018-06-21 02:44



Das ist die richtige Antwort! df # löscht auch #. - Viet
Ich war auf der Suche nach diesem, das ist super - Nadeem Khedr


Es sieht so aus als hätte @Arcege die Frage schon beantwortet, aber ich habe es getan d/l Löschen bis zum Zeichen l; andere Charaktere würden auch funktionieren.


15
2017-10-09 11:42



Dies funktioniert für Sachen über neue Zeilen. - jasonszhao
Hinweis: Dies muss gefolgt von Enter erfolgen. - Eric Lebigot


w bewegt sich zu dem folgenden Wort. l bewegt sich zum folgenden Zeichen.

So ist es d9l um die nächsten 9 Zeichen zu löschen.


6
2017-07-10 19:48



Schließen, l ist Vims rechte Pfeiltaste, also löschst du eigentlich richtig. Umgekehrt, d9h würde 9 verbleibende Zeichen löschen. - Walf