Angenommen, ich habe diese Codezeile:
$query = "SELECT * FROM table";
Gibt es in vi/vim einen Befehl, der sofort alles zwischen Anführungszeichen löschen und den Cursor zwischen sie setzen kann, damit ich mit dem Tippen beginnen kann?
Verwenden Sie ci"
, was bedeutet: Ändern Sie das, was in den Anführungszeichen steht.
Sie können auch andere Textobjekte auf ähnliche Weise bearbeiten, z.
ci'
- Ändern Sie die Anführungszeichenciw
- innerhalb eines Wortes ändern ci(
- Änderung in Klammerndit
- Löschen innerhalb eines HTML-Tags usw.Mehr zu verschiedenen vim Textobjekten hier .
Sie können zwischen Anführungszeichen wählen und dann löschen (d
), ändern (c
) usw. mit
vi"
Ebenso können Sie Klammern, Klammern, XML-Elemente usw. wie folgt ersetzen:
vi(
vi{
vit
oder zum einfachen Ändern/Löschen den entsprechenden di"
, ci"
usw. ausführen. Wenn Sie a
für i
ersetzen, werden die umgebenden Elemente eingeschlossen (sodass Sie die Klammern markieren oder ändern - nd Inhalt, zum Beispiel)
Ich habe ein Plugin erstellt vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotes
Es stellt Textobjekte für die nächstgelegenen Anführungspaare eines beliebigen Typs bereit und unterstützt Anführungszeichen, die sich über mehrere Zeilen erstrecken. Wenn Sie nur iq
oder aq
verwenden, können Sie den Inhalt von einfachen ('), doppelten (") oder hinteren (`) Anführungszeichen bearbeiten, die den Cursor gerade umgeben, vor dem Cursor stehen oder hinter (in dieser Reihenfolge von) Präferenz) Mit anderen Worten, es springt vorwärts oder rückwärts, wenn die Zitate erreicht werden müssen.
Es ist einfacher zu verstehen, wenn Sie Beispiele betrachten (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 werden für einfache Anführungszeichen gegeben. Das Plugin funktioniert genauso wie für doppelte (") und hintere (`) Anführungszeichen.
Sie können auch andere Operatoren verwenden: ciq
, diq
, yiq
, viq
usw.
Bitte schauen Sie sich die oben verlinkte Github-Seite für weitere Details an.
Bereits in den Anführungszeichen können Sie tun
di"
Lesen Sie es als löschen innerhalb "
Als Ergänzung zu Brians Antwort können Sie auch p
(Einfügen) und y
(Yank) des neuen Werts verwenden. Wenn Sie den Wert in Anführungszeichen durch einen anderen Wert ersetzen möchten, können Sie yi"
für die zu kopierende Auswahl tun. vi"
Wählen Sie den Bereich aus, den Sie ersetzen möchten, und p
, um den Wert richtig zu ersetzen.