Envolva certos tipos de linhas para diferentes larguras de texto?

1

Eu tenho o texto definido para embrulhar em 80 caracteres.

É possível incluir texto em, digamos, 50 caracteres ao editar um determinado tipo de linha?

Por exemplo, eu programo o Ruby e quero que os comentários do Ruby sejam empacotados para 50 caracteres, enquanto o restante fica em 80.

É possível?

    
por jordelver 18.01.2016 / 17:36

1 resposta

1

O envolvimento é controlado pela opção 'textwidth' . :help 'textwidth' mostra que é local para o buffer , portanto valores diferentes podem ser definidos, por exemplo manualmente via

:setlocal textwidth=50

Para que isso se aplique automaticamente a todos os arquivos Ruby, você pode usar a detecção de tipo de arquivo incorporada do Vim e plugins de tipo de arquivo . Coloque o comando acima em ~/.vim/after/ftplugin/ruby.vim . (Isso requer que você tenha :filetype plugin on ; o uso do diretório after permite que você substitua qualquer configuração de tipo de arquivo padrão feita por $VIMRUNTIME/ftplugin/ruby.vim .) Como alternativa, você pode definir um :autocmd FileType ruby ... diretamente em sua ~/.vimrc , mas isso tende a se tornar pesado quando você tem muitas personalizações.

A funcionalidade interna para aí, no escopo do buffer. Para aplicar a diferente largura de texto apenas a comentários (ou qualquer outro elemento de sintaxe), é necessária uma adaptação dinâmica. Isso pode ser implementado usando :autocmd , conectando-se ao evento CursorMoved . Meu plug-in OnSyntaxChange fornece funções de utilidade para simplificar a configuração (novamente colocada em ~/.vim/after/ftplugin/ruby.vim ):

call OnSyntaxChange#Install('Comment', '^Comment$', 1, 'a')
autocmd User SyntaxCommentEnterA setlocal textwidth=50
autocmd User SyntaxCommentLeaveA setlocal textwidth=80
    
por 21.01.2016 / 12:59

Tags