Envelopper certains types de lignes avec différentes largeurs de texte

1

J'ai le texte réglé pour envelopper à 80 caractères.

Est-il possible d'avoir un texte encapsulé, par exemple, de 50 caractères lors de l'édition d'un certain type de ligne?

Par exemple, je programme Ruby et je veux que les commentaires de Ruby soient réduits à 50 caractères, tandis que tout le reste reste à 80.

C'est possible?

jordelver
la source

Réponses:

1

L'emballage est contrôlé par l' 'textwidth'option. :help 'textwidth'montre qu'il est local pour le tampon , donc différentes valeurs peuvent être définies, par exemple manuellement via

:setlocal textwidth=50

Pour que cela s'applique automatiquement à tous les fichiers Ruby, vous pouvez utiliser les plugins de détection et de type de fichier intégrés à Vim . Mettez la commande ci-dessus dans ~/.vim/after/ftplugin/ruby.vim. (Cela nécessite que vous ayez :filetype plugin on; l'utilisation du répertoire after vous permet de remplacer tous les paramètres de type de fichier par défaut définis par $VIMRUNTIME/ftplugin/ruby.vim.) Vous pouvez également définir un :autocmd FileType ruby ...directement dans votre ~/.vimrc, mais cela a tendance à devenir difficile à manier une fois que vous avez effectué de nombreuses personnalisations.

La fonctionnalité intégrée s'arrête là, à la portée du tampon. Pour appliquer la largeur de texte différente uniquement aux commentaires (ou à tout autre élément de syntaxe), une adaptation dynamique est nécessaire. Cela peut être mis en œuvre en utilisant :autocmd, en accrochant à l' CursorMovedévénement. Mon plugin OnSyntaxChange fournit des fonctions utilitaires pour simplifier la configuration (à nouveau placé dans ~/.vim/after/ftplugin/ruby.vim):

call OnSyntaxChange#Install('Comment', '^Comment$', 1, 'a')
autocmd User SyntaxCommentEnterA setlocal textwidth=50
autocmd User SyntaxCommentLeaveA setlocal textwidth=80
Ingo Karkat
la source
Merci, mais je souhaite uniquement que le paramètre s'applique aux commentaires et non à l'ensemble du fichier Ruby.
Jordelver
Oh, désolé, ça a dû manquer à ça. Cela demande un peu plus d'effort; heureusement, j'ai écrit un plugin pour simplifier cela. Voir mon édition.
Ingo Karkat
C'est bien. Merci beaucoup. Désolé pour la réponse méga tardive :)
jordelver