Vim: seleziona / yank / elimina il contenuto tra parentesi, comprese le parentesi


31

In sostanza, è possibile selezionare il contenuto tra parentesi comprese le parentesi simili

yi{ yi(

Ma voglio includere le parentesi.

Risposte:


0

Puoi spostare il cursore su una parentesi e fare vf{o vf(per portarti in modalità visiva e quindi selezionare tutto fino a (e inclusa) la parentesi.


5
In realtà, questo finirà per selezionare solo la parentesi graffa di apertura. Se ti trovi in ​​cima alla parentesi graffa di apertura, f{ti sposterà sulla parentesi graffa di apertura più vicina, su cui sei già. Quello che probabilmente vuoi è v%che ti sposterà alla parentesi graffa corrispondente e può essere utilizzato su entrambi i lati.
Michael Mior,

Questa non è la risposta corretta Vedi la risposta di @ garyjohn di seguito.
Michael Sandman,

75

Sì. Utilizzare ainvece di i, come

ya{
ya(

Vedere

:help a{
:help a(

e più in generale,

:help text-objects
:help 04.8

1
Questa dovrebbe essere la risposta accettata!
phanhuy152,

3

Fa f{v%o f(v%fai quello che vuoi? Sposta il cursore sul prossimo {o (, entra in modalità visiva, quindi sposta il cursore sulla chiusura corrispondente} o). Se hai già superato l'ambito che desideri selezionare, puoi utilizzare un capitale F. Funziona altrettanto bene per saltare alla chiusura} o) prima anche - f}v%.

Una volta che hai quello che vuoi selezionato, è possibile y, d, x, ecc. Il %comando funziona anche su più righe, quindi puoi usare questa tecnica su grandi blocchi di codice se lo desideri (anche se fe Fnon lo fai, quindi devi iniziare dalla prima o dall'ultima riga).

EDIT: migliore risposta, sembra essere esattamente quello che stai cercando:

ya(

Sostituzione del inel comando originale con afa esattamente la stessa cosa, tranne che comprende il '(' carattere. Questo è "tirando un blocco", mentre yi(è "tirando un i blocchi nner".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.