2013-02-08 1 views
1

Je code C# dans vim et je veux être en mesure de plier les deuxEst-il possible d'utiliser plusieurs marqueurs de pli dans vim?

+---- 3 lines: void SomeFunction()----------------------------------------------- 

En plus

+---- 42 lines: #region The Answer To Life--------------------------------------- 

Cependant, foldmarker doit être une chaîne littérale. J'ai été amené à l'idée de foldmethod=syntax, mais cela ne fonctionne pas dans la boîte dans Vim 7.3.

En dehors de la définition manuelle de la méthode de pliage et de l'écriture d'un script, comment puis-je y parvenir?

+0

Would [cette page] (http://vim.wikia.com/wiki/Fold_a_C_sharp_region) aide? – romainl

+0

'mais cela ne fonctionne pas dans Vim 7.3. Que voulez-vous dire à ce sujet? Si vous pouvez plier le texte, vous avez compilé votre vim avec '+ folding '. Vous pouvez utiliser 'foldmethod = syntax' – Kent

+0

avec' foldmethod = syntax', quand j'arrive dans '{}' et que j'appuie sur 'zc' pour fermer le pli, il ne ferme rien. –

Répondre

2

Mon exécution de Vim 7.3 a un fichier syntax/cs.vim (à partir du 14 août 2009) qui prend en charge le pliage de la syntaxe pour #region. Le repliement de la syntaxe est agréable. Je déconseillerais une autre méthode de pliage. Je voudrais contacter l'auteur du fichier de syntaxe et suggérer le pliage manquant des fonctions comme une amélioration; beaucoup d'autres types de fichiers ont cela, et il semble être commun et utile. (Cela peut être configurable pour ceux qui ne veulent pas l'un ou l'autre.)

En attendant, vous pouvez ajouter ce qui suit à ~/.vim/after/syntax/cs.vim pour permettre le pliage de tous les blocs d'accolades:

syn region csFold start="{" end="}" transparent fold 
+0

Merci - fonctionne très bien! Cela aurait dû être la réponse acceptée! – vexe