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