Risposte:
Usa ci", che significa: cambia cosa c'è tra virgolette doppie.
Puoi anche manipolare altri oggetti di testo in modo simile, ad esempio:
ci' - modifica all'interno delle virgolette singoleciw - cambiamento all'interno di una parola ci( - cambia tra parentesidit - elimina all'interno di un tag HTML, ecc.Maggiori informazioni sui diversi oggetti di testo vim qui .
F"ci".
È possibile selezionare tra virgolette e quindi eliminare ( d), modificare ( c) ecc. Utilizzando
vi"
Allo stesso modo, puoi sostituire parentesi graffe, parentesi, elementi XML ecc. In questo modo:
vi(
vi{
vit
o semplicemente per cambiare / cancellare, fare il corrispondente di", ci"ecc. Sostituire aper iincluderà gli elementi circostanti (così si contrassegnano o cambiano le parentesi e il contenuto, per esempio)
Ho creato un plugin vim-textobj-quotes: https://github.com/beloglazov/vim-textobj-quotes
Fornisce oggetti di testo per le coppie di virgolette più vicine di qualsiasi tipo e supporta le virgolette su più righe. Usare solo iqo aqti permette di operare sul contenuto di virgolette singole ('), doppie (") o indietro (`) che attualmente circondano il cursore, sono davanti al cursore o dietro (in quell'ordine di preferenza) In altre parole, salta avanti o indietro quando necessario per raggiungere le virgolette.
È più facile da capire guardando gli esempi (il cursore è mostrato con |):
foo '1, |2, 3' bar:; dopo la pressatura diq:foo '|' barfoo| '1, 2, 3' bar:; dopo la pressatura diq:foo '|' barfoo '1, 2, 3' |bar:; dopo la pressatura diq:foo '|' barfoo '1, |2, 3' bar:; dopo la pressatura daq:foo | barfoo| '1, 2, 3' bar:; dopo la pressatura daq:foo | barfoo '1, 2, 3' |bar:; dopo la pressatura daq:foo | barGli esempi precedenti sono forniti per virgolette singole, il plugin funziona esattamente allo stesso modo per virgolette doppie (") e indietro (`).
È inoltre possibile utilizzare tutti gli altri operatori: ciq, diq, yiq, viq, etc.
Dai un'occhiata alla pagina GitHub collegata sopra per maggiori dettagli.
Già dalle citazioni puoi fare
di"
Leggilo come elimina dentro "
In aggiunta alla risposta di Brian, puoi anche p(incollare) e y(strattonare) il nuovo valore, quindi se vuoi sostituire il valore tra virgolette con un altro valore, puoi fare yi"sulla selezione che vuoi copiare, vi"per selezionare l'area che si desidera sostituire e quindi solo pper sostituire correttamente il valore.
La risposta scelta è adatta SOLO per ViM ma NON per vi. Anche la domanda è imprecisa perché l'autore non ha menzionato qual è la posizione iniziale del cursore. Se assumiamo che il cursore si trovi all'interno delle virgolette, per vi la risposta sarà:
T"ct"
Dove:
T "- torna indietro subito dopo il carattere"
c - cambia comando
t "- fornisce la posizione finale per il comando c, dove dovrebbe smettere di cancellare i caratteri, in altre parole l'intervallo da cambiare
vim, ma NONvi. (Non sono sicuro)