Antworten:
Verwenden Sie ci"
, was bedeutet: Ändern Sie, was in den doppelten Anführungszeichen steht.
Sie können auch andere Textobjekte auf ähnliche Weise bearbeiten, z.
ci'
- innerhalb der einfachen Anführungszeichen ändernciw
- innerhalb eines Wortes ändern ci(
- in Klammern änderndit
- Löschen innerhalb eines HTML-Tags usw.Mehr über verschiedene vim-Textobjekte hier .
F"ci"
.
Sie können zwischen Anführungszeichen wählen und dann mit (( d
), change ( c
) usw. löschen
vi"
Ebenso können Sie geschweifte Klammern, Klammern, XML-Elemente usw. wie folgt ersetzen:
vi(
vi{
vit
oder einfach ändern / löschen, führen Sie die entsprechenden di"
, ci"
usw. Durch Einsetzen a
für i
Willen der umliegenden Elemente umfasst (so dass Sie die Klammern markieren oder ändern und Inhalte, zum Beispiel)
Ich habe ein Plugin erstellt vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotes
Es bietet Textobjekte für die nächsten Anführungszeichenpaare eines beliebigen Typs und unterstützt Anführungszeichen, die sich über mehrere Zeilen erstrecken. Wenn Sie nur iq
oder verwenden aq
, können Sie den Inhalt von einfachen ('), doppelten (") oder hinteren (`) Anführungszeichen bearbeiten, die derzeit den Cursor umgeben, sich vor oder hinter dem Cursor befinden (in dieser Reihenfolge). Mit anderen Worten, es springt bei Bedarf vorwärts oder rückwärts, um die Anführungszeichen zu erreichen.
Es ist einfacher zu verstehen, wenn man sich Beispiele ansieht (der Cursor wird mit angezeigt |
):
foo '1, |2, 3' bar
;; nach dem Drücken von diq
:foo '|' bar
foo| '1, 2, 3' bar
;; nach dem Drücken von diq
:foo '|' bar
foo '1, 2, 3' |bar
;; nach dem Drücken von diq
:foo '|' bar
foo '1, |2, 3' bar
;; nach dem Drücken von daq
:foo | bar
foo| '1, 2, 3' bar
;; nach dem Drücken von daq
:foo | bar
foo '1, 2, 3' |bar
;; nach dem Drücken von daq
:foo | bar
Die obigen Beispiele gelten für einfache Anführungszeichen. Das Plugin funktioniert für doppelte (") und hintere (`) Anführungszeichen genauso.
Sie können auch alle anderen Operatoren: ciq
, diq
, yiq
, viq
, usw.
Weitere Informationen finden Sie auf der oben verlinkten Github-Seite.
Von bereits innerhalb der Anführungszeichen können Sie tun
di"
Lesen Sie es als "löschen"
Zusätzlich zu Brians Antwort können Sie den neuen Wert auch p
(einfügen) und y
(ziehen). Wenn Sie also den Wert in Anführungszeichen durch einen anderen Wert ersetzen möchten, können Sie yi"
die Auswahl, die Sie kopieren möchten, vi"
für den Bereich auswählen dass Sie ersetzen möchten und dann nur p
, um den Wert richtig zu ersetzen.
Die gewählte Antwort ist NUR für ViM geeignet, NICHT jedoch für vi. Die Frage ist ebenfalls ungenau, da der Autor die ursprüngliche Position des Cursors nicht erwähnt hat. Wenn wir annehmen, dass sich der Cursor innerhalb der doppelten Anführungszeichen befindet, lautet die Antwort für vi:
T"ct"
Wo:
T "- gehe gleich nach dem" Zeichen zurück
c - Befehl ändern
t "- Geben Sie die Endposition für den Befehl c an, an der keine Zeichen mehr gelöscht werden sollen, dh der zu ändernde Bereich
vim
, aber NICHTvi
. (Nicht sicher)