web-dev-qa-db-fra.com

Comment activer les plis automatiques dans Vim?

Comment activer le pliage automatique dans Vim? set foldmethod=syntax ne semble pas faire grand chose.

73
Eric Johnson

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

Autres types de pliage

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.

Plus de lecture

  1. Voir :help fold-methods pour connaître les détails des différentes méthodes de pliage.
  2. Voir :help folding pour apprendre les commandes du clavier pour manipuler les plis.
  3. Voir :help folds pour obtenir de l'aide sur l'ensemble du sujet du pliage.
134
Eric Johnson

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é.

3
Bet Lamed

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.

1
geekymartian

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
1
Diego