Respostas:
Você precisa de uma incrível e must-HAVE plugin de som surround . Em seguida, ele fará o que quiser, se você selecionar texto e tipo Sb
(chaves), ou S)
(observe S maiúsculo).
Na verdade, ele pode envolver muitas coisas: várias aspas, tags, etc. Ele permite que você coloque o cursor na palavra entre aspas duplas e altere aspas duplas para aspas simples digitando: cs"'
(change-surround "
to '
). Ou você pode excluir completamente as aspas digitando ds"
(delete-surround "
).
Leia os documentos por link, é realmente incrível!
sb
(chaves), ou s)
.
s
apenas exclui a seleção e entra no modo de inserção.
Além da sugestão de Dmitry do plugin surround , adicionar parênteses ao redor do texto destacado pode ser feito com o seguinte comando:
xi()<Esc>P
Você pode definir um mapa no modo visual usando (por exemplo) \s
adicionando o seguinte ao seu ~/.vimrc
arquivo:
xnoremap <leader>s xi()<Esc>P
V
vez de v
). Nesse caso, apenas cola as linhas abaixo de seus parênteses.
Os colchetes lh simplesmente se vinculam (
para cercar a seleção com os colchetes. Ao contrário do surround, ele não segue a filosofia usual de vinculação de teclas do vim, como segue. Em vez disso, são necessárias menos chaves.
Caso contrário, existem várias maneiras de prosseguir. Se você não se importa de mexer no registro sem nome, também usa s(^R")<esc>
( ^R
como CTRL-R
)
Com base na resposta de dotancohens, coloquei o seguinte no meu .vimrc
:
xnoremap <leader>( <ESC>`>a)<ESC>`<i(<ESC>
Você pode facilmente fazer mapeamentos semelhantes para [], {}, etc. Ele funciona saltando para os marcadores de início e fim definidos implicitamente após o término do modo visual. Dessa forma, a seleção de linhas inteiras adicionará os parênteses no início / fim da primeira / última linha; não sobrescreverá seu registro de arranco; e deixará o cursor logo antes do ponto de abertura.