Zum Inhalt

vim: Zeichen in Anführungszeichen ersetzen.

Was ich lange nicht hinbekommen habe: Man hat in vim einen Text in Anführungszeichen und möchte den Inhalt löschen. Aber wie trifft mal exakt alle Wort des Strings bzw. der wörtl. Rede, ohne erst nachzuzählen?


Der Trick ist eigentlich ganz einfach. Man nehme einen Text, etwa diesen:

Ok, wollte man hier den String ersetzen, wäre folgendes möglich (der Curser ist durch | dargestellt):

  • c13w löscht bis einschließlich dem %, aber nicht das ’s‘
  • c14w löscht dann bis zum ’s‘ einschließlich
  • c15w löscht den gewünschten Bereich

Blöde, da man sich schnell am %s vertut. Aber vim wäre nicht vim, wenn es nicht etwas dafür bereithalten würde. Der gesuchte Befehl heißt:

Kurze Erklärung

  • c<bewegung> startet einen ersetzen-Befehl
  • t<zeichen> steht gewissermaßen für until (bis zum) &ltzeichen>
  • 2t steht damit für »bis zum 2ten Auftreten des folgenden Zeichens«
  • »"« ist das gesuchte Zeichen

In Umgangssprache wäre das dann »Ersetze den Text bis zum zweiten Auftreten des Zeichens „«.

Ähnliche Operationen

Register nutzen

Möchte man den ausgeschnittenen Text wieder einfügen, drückt man einfach p (paste). Soll dieser zuvor in ein Register gespeichert werden, nutzt man etwa den Befehl "xc2t", um den entfernten Text in Register x zu speichern und "xp, um diesen wieder einzufügen.

Umgebende Zeichen

Möchte man die umgebenden Zeichen – hier: die Anführungszeichen – ersetzen, so empfehle ich das Plugin „Surrounding“.

Weblinks

Published inBasiswissenInformation TechnologyProgrammierenSoftware vorgestellt

2 Comments

  1. Das mit dem gequoteten Anfuehrungszeichen im String ist natuerlich fies. Da ich nicht auf c2t“ gekommen waere haette ich in diesem Fall die Suchfunktion benutzt:

    c/“[SPACE]

    Hat den Nachteil dass man es hier im Blog nicht so plakativ hinschreiben kann: statt [SPACE] tippt man natuerlich die Leertaste. Und natuerlich dass es auf diesen speziellen Fall zugeschnitten ist. Wenn das gequotete Anfuehrungszeichen nicht dabei gewesen waere haette man auf das Space auch verzichten koennen.

    • Ah, auch cool! Der Vorteil deiner Methode ist, dass ich sie mir noch besser merken kann und man nach regulären Ausdrücken bzw. mehreren Zeichen suchen kann. Man muss also nicht mehr zählen. Danke! 🙂

      (Dafür muss ich jetzt einmal Enter drücken :-P). Und der Fall mit dem gequoteten Anführungszeichen war natürlich Absicht – allerdings ursprünglich deswegen, um das Wörter zählen zu erschweren.

      Also vielen Dank nochmal!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.