Comment activer le pliage automatique dans Vim? set foldmethod=syntax
ne semble pas faire grand chose.
Pour autoriser les plis basés sur la syntaxe, ajoutez quelque chose comme le suivant à votre .vimrc
:
set foldmethod=syntax
set foldlevelstart=1
let javaScript_fold=1 " JavaScript
let Perl_fold=1 " Perl
let php_folding=1 " PHP
let r_syntax_folding=1 " R
let Ruby_fold=1 " Ruby
let sh_fold_enabled=1 " sh
let vimsyn_folding='af' " Vim script
let xml_syntax_folding=1 " XML
Le pliage basé sur la syntaxe est défini dans les fichiers de syntaxe du langage qui se trouvent dans $ VIM/syntax. Mais certaines langues n'ont pas de règles de pliage intégrées dans leurs fichiers de syntaxe. Par exemple Python. Pour ces langues, vous devez télécharger quelque chose de http://vim.sf.net qui se plie. Sinon, vous devrez utiliser des plis basés sur des retraits. Pour ce faire, vous souhaiterez probablement ajouter les éléments suivants à votre fichier .vimrc:
set foldmethod=indent
set foldnestmax=2
Il existe 6 types de plis:
manual manually define folds
indent more indent means a higher fold level
expr specify an expression to define folds
syntax folds defined by syntax highlighting
diff folds for unchanged text
marker folds defined by markers in the text
Personnellement, je n'utilise que des plis de syntaxe. Habituellement, je veux simplement plier la méthode et ne pas plier tous les niveaux de retrait. Un code hérité au retrait incohérent et au format étrange au travail rend souvent le pliage du retrait difficile ou impossible. L'ajout de repères au document est fastidieux et les personnes qui n'utilisent pas Vim ne les conserveront pas lors de la modification du document. Les plis manuels fonctionnent très bien jusqu'à ce que quelqu'un modifie votre code dans le contrôle de code source et que tous vos plis soient maintenant au mauvais endroit.
:help fold-methods
pour connaître les détails des différentes méthodes de pliage.:help folding
pour apprendre les commandes du clavier pour manipuler les plis.:help folds
pour obtenir de l'aide sur l'ensemble du sujet du pliage.Le pliage JavaScript ne fonctionnait pas non plus pour moi. J'ai découvert quand je l'ai fait set syntax = javaScript (avec un S majuscule), cela a soudainement fonctionné.
J'ai essayé toutes les solutions ici et aucune n'a fonctionné avec NeoVim v0.3.1 Jusqu'à ce que je trouve que le plugin vim-javascript et le pliage commencent à fonctionner.
La façon d'activer le pliage dans les nouvelles versions de Vim a changé (j'utilise vim 7.4). Vous devez maintenant créer le fichier ~/.vim/ftplugin/javascript.vim
(sous Linux) et ajoutez vos instructions de pliage de code comme expliqué dans la réponse d'Eric Johnson. La détection des types de fichiers et le chargement des plugins pour des types de fichiers spécifiques doivent être activés en les plaçant dans votre .vimrc
:
filetype plugin on