2016-04-25 12 views
6

Zum Beispiel in der folgenden:In Vim, wie kann ich alles zwischen Anführungszeichen einschließlich der Anführungszeichen löschen?

Testing "deleting" within quotes 

Mit dem Cursor innerhalb des Löschens, wie kann ich den Text in Anführungszeichen löschen und schließen die Anführungszeichen, so dass:

Testing within quotes 
+0

Eng verwandt mit http://stackoverflow.com/questions/36843099/in-vim-how-can-i-delete-everything-between-quotes- including-the-quotes – SibiCoder

Antwort

10

Sie die verwenden können, Reihenfolge:

da"

Denken Sie daran, dies funktioniert nur in einer einzigen Zeile und wird remov e nachstehende Leerzeichen nach dem letzten Zitat.

+5

Ich wusste, dass SO erlaubt sich selbst zu beantworten Q. Jedoch, was Sie gefragt haben, ist wirklich eine RTFM-Sache ... vielleicht sollte das Verstehen der Textobjekte die erste Sache sein, die für einen neuen vim-Benutzer getan wird. Bezüglich des 'da'' können Sie 'da tun "Nicht Nur innerhalb der Anführungszeichen können Sie dies außerhalb der Anführungszeichen tun, z. am Anfang der Zeile, um das erste "" zu entfernen ..."' – Kent

+2

Fair genug, obwohl ich dies hinzugefügt habe, da es eine allgemeine Frage für einen Anfänger zu sein scheint, und es wurde noch nicht gefragt oder beantwortet (obwohl ähnliche Fragen gewesen sind). Es ist normalerweise einfacher, eine schnelle Suche als das Handbuch zu machen für einen Anfänger (der vielleicht nicht über Vim's ': help' weiß). Fühlen Sie sich frei, die Antwort mit Ihren Vorschlägen zu bearbeiten, wenn Sie das für hilfreich halten. – Casey

+1

Vim ': help' ist nur hilfreich, wenn Sie bereits wissen, was Sie suchen Es ist nützlich, diese Operationen irgendwo zu dokumentieren, wo sie leicht zu finden sind. –

3

Wie Kent darauf hingewiesen hat, ist es besser, mit Textobjekten zu beginnen. Schreiben als Antwort auf Vollständigkeit. Auszug aus :h text-objects, unten, schlägt zwei Formen i und a

Dies ist eine Reihe von Befehlen, die nur während im visuellen Modus oder nach einem Operator verwendet werden können. Die Befehle, die mit "a" beginnen, wählen "a" n Objekt inklusive Leerraum, die mit "i" beginnenden Befehle wählen ein "inneres" Objekt ohne Leerzeichen oder nur den Leerraum. Daher wählen die "inneren" Befehle immer weniger Text als die "a" Befehle.

Text-Objekte sind zu anderem Zeichenpaar nützlich wie (), {}, etc. Zum Beispiel ist es sinnvoll, während

if (i == true) { 
} 

zu

if (_) { 
} 

von ci( oder ci) Ändern verwenden.

Wie auch immer, können wir verwenden, wie Sie für Ihren Fall als

da" 

oder di" löschen nur den Inhalt innerhalb von“.

0

Halten Sie den Cursor in der ersten Anführungszeichen ein und drücken d Recht, tat , dann tippe/"/ e Es sollte den Inhalt zwischen Anführungszeichen und Anführungszeichen löschen. Dies gilt auch für mehrzeilige Leitungen.

Eine andere Art und Weise: Halten Sie den Cursor in der ersten Anführungszeichen und Typ df“ Es wird auch den Text in Anführungszeichen löschen und zitiert auch Nicht anwendbar für mehrere Zeilen

In den beiden Möglichkeiten, Sie Befehle ausführen, in!. Normaler Modus

+0

zu wählen Diese Methoden funktionieren nicht, wenn ein anderes Anführungszeichen dazwischen vorhanden ist Zitate. – SibiCoder

Verwandte Themen