2012-04-06 7 views
5

J'utilise la "syntaxe" foldmethod dans vim 7.3. Dans Vimrc:Pliage de syntaxe VIM: désactiver les commentaires multi-lignes pliantes

set foldmethod=syntax 

Quand j'ouvre Test.cpp, contenant:

/* A function with a multi-line 
* comment. This takes at least 
* four lines and I want to be 
* able to read all of them. 
*/ 
void TheFunction() 
{ 
    DoStuff(); 
} 

je vois ce qui suit lorsqu'il est plié:

+-- 5 lines: A function with a multi-line--------------------------------------------- 
void TheFunction() 
+-- 3 lines: {------------------------------------------------------------------------ 

Je souhaite le pliage du corps de fonction, mais pas le commentaire-pliage. Je veux le désactiver pour qu'il ressemble à ceci:

/* A function with a multi-line 
* comment. This takes at least 
* four lines and I want to be 
* able to read all of them. 
*/ 
void TheFunction() 
+-- 3 lines: {------------------------------------------------------------------------ 

Comment faire? Je peux voir le groupe de syntaxe qui est pertinent avec: syn liste cComment

cComment  xxx matchgroup=cCommentStart start=+/\*+ end=+\*/+ extend fold contains 
[email protected],cCommentStartError,cSpaceError,@Spell 
        links to Comment 

Mais outillage pendant une heure avec la documentation vim et Google ne m'a pas dit comment supprimer l'attribut « pli » de ce groupe.

Mon seul recours est-il vraiment d'éditer le fichier de syntaxe du langage? Je suppose qu'il est moins moche de copier le fichier de syntaxe du système et de l'utiliser, mais je devrais pouvoir désactiver un groupe spécifique avec une commande dans mon fichier .vimrc.

+0

La réponse de kev fonctionne parfaitement. Cela se trouve dans la section syn-file-remarques des docs ': help ft-c-syntax'. Vous pouvez également plier les commentaires de style '#if 0' avec' let c_no_if0_fold = 1'. – reasgt

Répondre

5

Lorsque 'foldmethod' est réglé sur "syntax" puis /* */ comments et { } blocks va devenir un pli. Si vous ne voulez pas que les commentaires deviennent un pli, utilisez:

:let c_no_comment_fold = 1 
Questions connexes