J'ai foldmethod=indent
installé mon ~/.vimrc
, et en général cela fonctionne pour moi et j'aimerais le garder.
Cependant, il y a quelques fichiers que j'ai que je modifie régulièrement (et qui sont sous mon contrôle exclusif), où j'aimerais ajouter un système basé sur des marqueurs, en particulier pour que lorsque j'ouvre le fichier une grande section, je regarder rarement (qui est déjà «délimité» par le retrait) est pré-plié. On dirait que foldmethod=marker
me permettrait de le faire (je ne me dérange pas le commentaire étrange dans le fichier pour indiquer ces « pré-plis » si nécessaire), mais je veux encore foldmethod=indent
mis pour que je puisse utiliser zc
, zo
et ainsi de suite pour ensuite plier ou déplier des sections par retrait. Pour autant que je sache, je ne peux pas définir la méthode de pliage sur plusieurs valeurs.
Existe-t-il un autre moyen d'y parvenir (idéalement en utilisant quelque chose intégré au fichier lui-même)?
Réponses:
Chaque fenêtre peut avoir sa propre valeur locale de
'foldmethod'
; ce que vous définissez~/.vimrc
n'est que la valeur par défaut globale. Il existe plusieurs façons de définir une valeur locale différente pour un tampon particulier ::setlocal foldmethod=marker
:autocmd FileType java setlocal foldmethod=marker
(ou dans~/.vim/after/ftplugin/java.vim
):autocmd BufRead /path/to/file setlocal foldmethod=marker
Il ne peut toujours y avoir qu'une seule méthode de pliage dans une seule fenêtre. Si vous souhaitez utiliser différentes stratégies, vous devez choisir une méthode plus flexible (par exemple
expr
) et réimplémenter la ou les "autres" méthodes (par exemple en faisant en sorte que vous'foldexpr'
considériez le tiret). Ou vous utilisez deux divisions de fenêtre pour le même tampon et définissez des méthodes de pliage différentes pour chaque division.Puisque ce n'est probablement pas ce que vous voulez entendre, vous pouvez pirater quelque chose avec un
:autocmd CursorMoved
qui change la méthode de pliage en fonction de la ligne actuelle:la source
zc
,zo
et ainsi de suite ne sera plus fonctionner comme prévu dans ce tampon. J'ai clarifié ma question.