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