2010-10-24 10 views
3

-je utiliser des plis pour des commentaires commeJe veux personnaliser le vim texte montre dans les plis effondrés

# 
Stuff between the # are comments and automatically folded 
# 

Mais une fois plié, ils ressemblent à cette

+-- 4 lines: #-------------------------------------------------------------- 

Je préférerais avoir les dire

+-- 4 Stuff between the # are comments and automatically folded 

et de ne pas être en surbrillance, ou tout ce qui fait leur fond blanc sur mon terminal noir.

Je pense que c'est la variable foldtext, et la regex-ing est au-delà de moi.

Répondre

1

Oui, il est l'option foldtext, mais vous n'avez pas besoin regex ici: mettre cela en ~/.vim/ftplugin/{filetype}.vim (où {filetype} doit être remplacé par un type de fichier pour lequel ces plis sont définies):

setlocal foldtext='+-'.v:folddashes.'\ '.getline(v:foldstart+1) 
2

En plus à la méthode ZyX montre que vous pouvez assigner une fonction séparée pour construire le texte, ce qui est particulièrement utile si vous voulez faire un traitement plus compliqué. Par exemple,

setlocal foldtext=MyFoldText() 

function! MyFoldText() 
    " do whatever processing you want here 
    " the function will be called for each folded line visible on screen 
    " the line number of each fold's "head" line will be in v:foldstart 
    " last line of fold in v:foldend 
    " can do whatever processing you want, then return text you want 
    " displayed: 

    return my_processed_fold_text 

endfunction 

En ce qui concerne en mettant en valeur, la ligne de texte plié aura le même point culminant, qui est déterminé par le groupe highlight « plié ». Donc, si vous voulez qu'ils soient du texte blanc sur fond noir:

:hi Folded guifg=white guibg=black ctermfg=white ctermbg=black 

ou si vous voulez en italique blanc cassé:

:hi Folded guifg=#bbbbbb guibg=black gui=italic ctermfg=white ctermbg=black 
+0

Votre description correspond 'foldtext', pas' foldexpr' (le premier est utilisé pour générer le texte affiché quand un pli est fermé, ce dernier est seulement utilisé avec 'foldmethod = expr' et il est utilisé pour déterminer automatiquement le niveau de pli). –

+0

@ Chris-- Merci, oui, était juste une faute de frappe, que j'ai corrigé. Désolé de confondre les choses. Le paramètre de texte plié peut utiliser une fonction séparée de la même manière que le fichier foldexpr et il arrive que mes fils soient croisés. –

0
:hi Folded guifg=green guibg=black ctermfg=green ctermbg=black 

fait belle et vert sur fond gris, et je peux tromper avec elle pour le faire paraître belle

:setlocal foldtext='Comment'.v:folddashes.'\ '.getline(v:foldstart+1).getline(v:foldstart 
+2) 

remplira le texte pli, même si je saute une ligne après la #, que je vais probablement .

MERCI! C'est beaucoup plus supportable et utile, maintenant.

+0

Bienvenue dans StackOverflow! Une réponse n'est pas un moyen de commenter. Vous pouvez éditer votre question avec les informations que vous avez apprises/acceptées. En outre, il est d'usage d'accepter (marque de graduation verte) la réponse que vous avez trouvée la plus utile (au lieu de simplement taper 'merci'). – sehe

+0

Urff - à ne pas négliger. C'était une question ancienne. Je vais toujours le garder là pour la vérité et la valeur – sehe