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 a
per i
includerà 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 iq
o aq
ti 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 '|' bar
foo| '1, 2, 3' bar
:; dopo la pressatura diq
:foo '|' bar
foo '1, 2, 3' |bar
:; dopo la pressatura diq
:foo '|' bar
foo '1, |2, 3' bar
:; dopo la pressatura daq
:foo | bar
foo| '1, 2, 3' bar
:; dopo la pressatura daq
:foo | bar
foo '1, 2, 3' |bar
:; dopo la pressatura daq
:foo | bar
Gli 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 p
per 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)