Question

Est-il possible que VIM continue d'appliquer le formatage à la ligne utilisée comme en-tête d'un repli?

Par exemple, j'ai le code suivant:

int foo(int a, int b) {
    int c;
....
}

Une fois plié, je vois:

+-- 4 lines: int foo(int a, int b) {----------------------------

Cependant, la ligne entière est mise en surbrillance selon l'option "Plié". classe. Y a-t-il un moyen de désactiver cela, donc je continue à voir la coloration syntaxique?

[pour un exemple simple, ce n'est pas si important, mais j'utilise aussi beaucoup le pliage pour visualiser des fichiers de données volumineux, et le formatage est beaucoup plus important pour moi]

Était-ce utile?

La solution

  

Cependant, la ligne entière est mise en surbrillance selon l'option "Plié". classe. Y a-t-il un moyen de désactiver cela, je continue donc à voir la coloration syntaxique? "

Non, le texte de titre plié n'est pas un texte faisant partie d'un fichier et n'est pas modifiable directement, mais simplement calculé et superposé à l'écran. La surbrillance 'Plié' est appliquée à toute la ligne et la même surbrillance est appliquée à tous les plis.

Pour mon utilisation avec vim en tant que finisseur (dans le projet VimOutliner), j'ai piraté la source vim afin de permettre une mise en surbrillance différente des plis en fonction du niveau de pli. etc.). Je suppose qu’il pourrait être plus facile d’utiliser la surbrillance du texte déjà existante au niveau de la ligne de tête, mais compte tenu de la façon dont le pliage fonctionne, je suppose que cela pourrait être plus difficile à faire qu’il ne le paraît.

Désolé, je viens de me faire comprendre que la suggestion de méthode de retrait par retrait peut être exactement ce que vous recherchez, car elle préserve la syntaxe des lignes non marquées tout en les faisant fonctionner comme une sorte d'en-tête pour la section pliée.

Autres conseils

Je pense que ce que vous recherchez, c'est de changer la méthode de pliage en indent au lieu de manuel, ce qui est la valeur par défaut. Tapez ceci en mode commande.

:set foldmethod=indent

Maintenant, si vous entrez dans votre fonction foo et tapez zm (augmentez le niveau de pli de un), cela ressemblera à ceci:

int foo(int a, int b) {
+--  2 lines: int c;------------------------------------------------------------
}

La ligne foo aura toujours la coloration syntaxique. Pour se dérouler bien sûr, tapez zr. Pour plus de commodité, je mets les quelques lignes suivantes dans mon fichier .vimrc pour tout replier ou tout déplier rapidement:

" Folding and unfolding
map ,f :set foldmethod=indent<cr>zM<cr>
map ,F :set foldmethod=manual<cr>zR<cr>

Il existe également un bon tutoriel ici et, bien sûr, la lecture de l'aide de vim sur foldmethod peut vous conduire à d’autres méthodes qui vous plaisent mieux qu’indenter, mais vous voudrez probablement indenter l’affichage de votre exemple de code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top