Existe uma maneira rápida de abrir chaves para uma função e terminar no modo de inserção recuado na próxima linha. Então, por exemplo:
void myFunc(int arg) {
<cursor>
}
Especificamente, estou pedindo uma moção para ser executada depois de escrever os argumentos dentro de ()
.
No momento, a única maneira que consigo pensar é a direta, insira colchetes abertos e fechados, mova o segundo duas linhas para baixo, suba uma e depois tabule.
{}<esc>i<enter><enter><esc>ki<tab>
Isso parece realmente redundante. Acho que também posso esperar para escrever a segunda curva depois de criar as novas linhas e salvar uma opção de modo. Mas existe uma maneira mais inteligente de fazer isso?
Você tem duas opções:
Crie um mapeamento personalizado
Se a maneira manual for fazer:
então você pode mapeá-lo para algo mais curto:
e também faça isso para outros colchetes:
Essa abordagem é muito comum. Aqui está uma variante que tenho
vimrc
há muitos anos:Use um plugin de terceiros
Basta pesquisar no Google por "colchetes de fechamento automático do vim".
Use
<cr><esc>O
em vez do double<cr><cr><up>
: isso garantirá que o cursor seja recuado corretamente no final.<cr><cr><up><c-f>
teria funcionado enquanto CTRL-F estivesse presente em'indentkeys'
. Como tal,<esc>O
é mais robusto.Nota: Eu recomendaria usar um plug-in de colchetes, pois esses mapeamentos sem mapeamentos que ajudam a saltar para fora dos pares de colchetes podem ser muito complicados de usar. Além disso, esses plugins já sabem como suportar
redo
/.
e muitas outras coisas.