Quando aprendi a programar, pressionava os colchetes de abertura e fechamento / etc, depois a tecla de seta esquerda e depois inseria o texto. Então, para colocar, [hello]
eu digitaria []
, e então a seta esquerda para que ela fique sobre o primeiro colchete ( [
).
Gosto disso porque sei que sempre tenho o número certo de colchetes / etc; caso contrário, sinto que minha mão precisa se mover para frente e para trás na tecla colchete / etc
Mas, mantendo a mentalidade do Vim, não quero buscar continuamente as teclas de seta. Existe algo que eu possa fazer que não envolva o uso das teclas de seta ou a necessidade de sair continuamente do modo de inserção para pressionar h
e voltar?
fonte
[
,]
,<Esc>
(que irá colocar o cursor na]
) e, finalmente,i
que será coloque o cursor entre os colchetes no modo de inserção.ctrl-o 2h
? Isso é mais rápido do que mover sua mão para os cursores? ;)h
ou,j
caso contrário, usarei outros movimentos. Ela se sente mais rápido para mim, mas eu entendo que algumas pessoas sentem-lo de uma forma diferente :)Existem muitos plugins "par" que fazem isso automaticamente para você. No entanto, todos eles me esfregam da maneira errada. Costumo usar o plugin surround.vim de Tim Pope . Eu faço o seguinte:
<c-s>]
no modo de inserção para inserir[]
com o cursor no meio dos colchetes.fonte
Se você apenas precisar mover um espaço, ctrl-ono modo de inserção, sua próxima entrada será um comando normal, portanto ctrl-o, hvoltará um. A modelagem será exibida
--- (insert) ---
até você inserir o comando normal.fonte
O lh-brackets fornece mapeamentos de inserção, modo normal e visual para inserir par de colchetes.
Notas:
(
no modo visual será cercado (por padrão), não precisamos atingirsi(
sequências semelhantes.fonte
Respostas anteriores são muito boas. Mas acho que você pode querer algo mais fácil. Pessoalmente, eu uso
h
j
k
l
para me movimentar. Portanto, adicionei ao meu .vimrc o seguinte:Apenas uma pequena dica. Você disse que seu procedimento é
i
,[]
,<Esc>hi
.Há mapeamentos pendentes de operador, o que significa que você pode
ci[
oudi[
ouii[
.fonte
Eu pessoalmente não sou um grande fã de inserção automagica de caracteres; você pode definir facilmente um conjunto de mapeamentos para inserir texto e mais o cursor para onde deseja:
Observe que um plugin como o ultisnips também faz coisas assim, mas mais avançadas. Por exemplo, em Javascript, posso digitar:
e eu recebo:
Você pode adicionar um snippet simples para preencher os colchetes; este é um arquivo .snippet especial que reside em
~/.vim/UltiSnips/all.snippets
:${0}
é a posição do cursor.veja
:help UltiSnips-adding-snippets
para mais informação.Observe que o ultisnips requer Python; outro plugin bem conhecido é o vim-snipmate . O Wiki do Vim tem uma lista completa de plug-ins de trechos .
fonte