vim: linha de quebra antes da palavra atual

1

Eu escrevo um texto no vim e não quero exceder o limite de comprimento de linha de 80 caracteres. Agora estou no personagem 72, que é um espaço, comece a escrever uma palavra. A palavra termina no personagem 82. Existe algum truque rápido de como substituir o último espaço por uma nova linha (ou de alguma forma mover a última palavra para a nova linha) ter um cursor no final dessa palavra, então ao invés de

Esc hhhhhhhhhh i Enter Esc llllllllll i blah blah blah

seria

Esc magic i blah blah blah

?

    
por Adam Trhon 05.05.2011 / 17:25

2 respostas

0

Existem muitas maneiras de fazer isso.

A tecla b volta uma palavra, e B retorna uma palavra 'grande' (b irá parar nos traços, por exemplo). Então você pode pressionar

esc B h r enter

se você quiser voltar ao modo de entrada, você poderia fazer

esc B i enter

Você pode gravar uma macro, se você costuma fazer isso com frequência. Para gravar uma macro, pressione q seguido por qualquer letra (você atribui uma macro ao registro dessa letra). Digamos que quiséssemos gravar a primeira sequência como uma macro e atribuí-la ao registro z . você faria:

q z B h r enter q

agora sempre que você pressionar @z no modo normal, ele retornará uma palavra e substituirá o caractere antes dele por uma nova linha.

mais sobre macros aqui link

    
por 06.05.2011 / 18:43
9

O Vim pode fazer isso automaticamente se você definir a opção 'textwidth' como 80. Você pode fazer isso colocando essa linha em seu arquivo .vimrc ou _vimrc:

set textwidth=80

Isso quebrará a linha em ou antes da coluna 80 ao adicionar texto. Não irá reformatar o parágrafo inteiro. Uma maneira de fazer isso enquanto você está no modo de inserção é executar

<C-O>gqap

em que < C-O > significa manter pressionada a tecla Ctrl enquanto digita a letra o. gqap é o comando para reformatar ( gq ) o parágrafo atual ( ap ). Quando o comando estiver pronto, você estará de volta no modo de inserção com o cursor fechado para onde estava antes, mas não necessariamente no mesmo ponto da frase. Você pode ler mais sobre esses comandos em

:help i_CTRL-O
:help gq
:help ap

Se a quebra de linha automática em 'largura de texto' não estiver funcionando conforme o esperado, talvez seja necessário alterar sua 'formatação'. Veja

:help formatoption
:help fo-table

para mais sobre isso.

Se você não tem certeza de onde está o seu arquivo .vimrc ou _vimrc, você pode abrir o Vim e executar

:e $MYVIMRC
    
por 05.05.2011 / 17:47

Tags