Vous étiez assez proche pour obtenir que cela fonctionne. Il y a quelques facteurs funky en jeu que nous devrions considérer.
- mise
foldmethod
-syntax
(BTW ce n'est pas documenté sur le savoir Vimscript Hardway..so :help foldmethod
était la clé pour comprendre cela)
SYNTAX fois la syntaxe
Un pli est défini par les éléments de syntaxe qui ont l'argument "fold". |: pliage syn-|
Le niveau de pli est défini par des plis d'imbrication. L'emboîtement des plis est limité à avec 'foldnestmax'.
Veillez à spécifier une synchronisation syntaxique correcte. Si cela n'est pas fait , les plis peuvent différer de la surbrillance affichée. C'est particulièrement pertinent lors de l'utilisation de modèles qui correspondent à plus d'une ligne. En cas de doute, essayez d'utiliser la synchronisation force brute:
:syn sync fromstart
La principale chose à noter est le sync fromstart
c'est une aide utile si vous avez regex qui correspond tout au long du dossier et ne voulez attraper l'en-tête. Dans votre cas, vous devriez être capable d'ignorer cela, mais juste quelque chose à savoir.
- haut vers le bas regex balayage
Depuis le bloc d'importation est assez prévisible, nous pouvons simplifier la start
et end
à ressembler à quelque chose comme ceci:
syn region foldImports start="import" end=/import.*\n^$/ fold keepend
Depuis le region
cherche juste une chaîne pour commencer l'appariement sur nous pouvons simplement utiliser "import"
(ou /import/
) et puis pour la valeur finale, nous voulons utiliser un peu plus de voiture déclaration ingénieusement conçue. La clé est que nous voulons avoir la fin soit la dernière ligne de l'importation avec une ligne vide suivante, il (/import.*\n^$/
)
Espérons que le tour est joué pour vous (je ne travaille pas avec scala de sorte que vous pourriez avoir à ajustez un peu la regex au besoin)
Il vaut la peine de noter que si vous désactivez l'option «syntax on» dans votre '.vimrc' le code ci-dessus va fonctionner. Cependant, s'il est activé, il ne se repliera pas correctement. – Petesta
La déclaration ci-dessus n'est pas correcte. Le problème réside dans un plugin appelé [vim-autoclose] (https://github.com/Townk/vim-autoclose). Si vous le supprimez de l'environnement d'exécution Vim, les plis fonctionnent comme prévu. – Petesta