2016-04-25 10 views
6

Per esempio, nel seguente:In Vim, come posso cancellare tutto tra virgolette comprese le virgolette?

Testing "deleting" within quotes 

Con il cursore all'interno di cancellare, come posso eliminare il testo all'interno delle virgolette e includere le virgolette, lasciando:

Testing within quotes 
+0

Strettamente correlato a http://stackoverflow.com/questions/36843099/in-vim-how-can-i-delete-everything-between-quotes-including-the-quotes – SibiCoder

risposta

10

È possibile utilizzare la seguente sequenza:

da"

tenere a mente questo funziona solo su una singola linea, e si REMOV e eventuali spazi finali dopo l'ultima citazione.

+5

Sapevo che SO consente rispondere a tutti voi D. Tuttavia, ciò che stavate chiedendo è davvero una cosa RTFM ... forse la comprensione degli oggetti di testo dovrebbe essere la prima cosa da fare per un nuovo utente vim .. Per quanto riguarda il 'da" ', potete fare' da "no solo all'interno delle virgolette, puoi farlo al di fuori delle virgolette, es. all'inizio della riga, per rimuovere il primo '" ..."' – Kent

+2

Abbastanza corretto, anche se l'ho aggiunto poiché sembra essere una domanda comune per un principiante e non è stato ancora chiesto o risposto (anche se domande simili sono state). In genere è più facile fare una ricerca rapida che attraversare il manuale per un principiante (che potrebbe non sapere di Vim: 'help'). Sentiti libero di modificare la risposta con i tuoi suggerimenti se pensi che sarebbe utile – Casey

+1

Vim': help' è utile solo se sai già cosa stai cercando per. È utile avere queste operazioni documentate da qualche parte dove è facile trovarle. –

3

Come ha sottolineato Kent, è meglio iniziare con oggetti di testo. Scrivere come risposta per completezza. Estratto da :h text-objects, indicato di seguito, suggeriscono due forme i e a

Si tratta di una serie di comandi che possono essere usati solo in modalità visiva o dopo un operatore. I comandi che iniziano con "a" selezionano "a" n oggetto compreso lo spazio bianco, i comandi che iniziano con "i" selezionano un oggetto "interno" senza spazio bianco, o solo lo spazio bianco. Pertanto i comandi "interni" selezionano sempre meno testo rispetto ai comandi "a".

testo-oggetti sono utili per altra coppia di caratteri come (), {}, etc. Ad esempio, è utile durante la sostituzione

if (i == true) { 
} 

a

if (_) { 
} 

utilizzando ci( o ci).

In ogni caso, siamo in grado di utilizzare, come avete fatto a ragione, per il vostro caso come

da" 

o di" per eliminare solo il contenuto all'interno di".

0

Tenere il cursore nella prima virgolette e premere d , quindi digitare/"/ e Dovrebbe eliminare il contenuto tra virgolette doppie e virgolette. Questo vale anche per le linee multiple.

Un altro modo: Tenere il cursore nella prima citazioni e tipo df" Sarà anche eliminare il testo all'interno citazioni e cita anche Non applicabile per le linee multiple

In entrambi i modi, si esegue comandi!. modalità normale

+0

Questi metodi non funzionano quando tra queste sono presenti altre virgolette doppie citazioni. – SibiCoder

Problemi correlati