Inserindo linha antes e depois

Last updated 7 months ago

Suponha que se queira um comando, considere ,t, que faça com que a linha indentada corrente passe a ter uma linha em branco antes e depois; isto pode ser obtido pelo seguinte mapeamento:

:map ,t <Esc>:.s/^\(\s\+\)\(.*\)/\r\1\2\r/g<cr>

Explicando:

: ................ entra no modo de comando
map ,t ........... mapeia ,t para a função desejada
<Esc> ............ ao executar sai do modo de inserção
s/isto/aquilo/g .. substitui isto por aquilo
: ................ inicia o modo de comando
. ................ na linha corrente
s ................ substitua
^ ................ começo de linha
\s\+ ............. um espaço ou mais (barras são escapes)
.* ............... qualquer coisa depois
\(grupo\) ........ agrupo para referenciar com \1
\1 ............... repete na substituição o grupo 1
\r ............... insere uma quebra de linha
g ................ em todas as ocorrências da linha
<cr> ............. Enter