Risposte:
Hai bisogno di un fantastico plugin surround indispensabile . Quindi, farà felicemente quello che vuoi se selezioni il testo e digiti Sb
(parentesi graffe) o S)
(nota la S maiuscola!).
In realtà può fare molto circostante: varie virgolette, tag, ecc. Ti permette di posizionare il cursore nella parola tra virgolette doppie e di cambiare le virgolette doppie tra virgolette digitando: cs"'
(cambia-surround "
in '
). Oppure puoi eliminare completamente le virgolette digitando ds"
(delete-surround "
).
Leggi i documenti tramite link, è davvero fantastico!
sb
(parentesi graffe), oppure s)
.
s
premere semplicemente cancella la selezione ed entra in modalità inserimento.
Oltre al suggerimento di Dmitry sul plugin surround , l'aggiunta di parentesi attorno al testo evidenziato può essere fatta con il seguente comando:
xi()<Esc>P
Puoi impostare una mappa in modalità visiva usando (ad esempio) \s
aggiungendo quanto segue al tuo ~/.vimrc
file:
xnoremap <leader>s xi()<Esc>P
V
invece di v
). In questo caso, incolla solo le linee sotto le parentesi.
Le parentesi graffe si legano semplicemente (
per circondare la selezione tra parentesi. A differenza di surround , non segue la solita filosofia di legatura dei tasti. Sono invece necessarie meno chiavi.
Altrimenti, ci sono molti modi per procedere. Se non ti dispiace pasticciare il registro senza nome, usi anche s(^R")<esc>
( ^R
come CTRL-R
)
Sulla base della risposta dotancohens, ho inserito quanto segue nel mio .vimrc
:
xnoremap <leader>( <ESC>`>a)<ESC>`<i(<ESC>
Puoi facilmente creare mappature simili per [], {}, ecc. Funziona saltando ai marcatori di inizio e fine impostati implicitamente dopo aver terminato la modalità visiva. In questo modo selezionando intere righe verranno aggiunte le parentesi all'inizio / alla fine della prima / ultima riga; non sovrascriverà il tuo registro yank; e lascerà il cursore proprio prima della parentesi aperta.