Comment puis-je activer et faire le pliage de code dans Vim?
Dois-je changer quoi que ce soit dans ~/.vimrc
?
J'écris z+a et z+c et z+o et rien ne se passe.
Voici un article sur le pliage: pliage de code dans Vim .
Non, vous n'avez pas besoin de mettre la commande à partir de la page à laquelle vous avez lié dans votre ~/.vimrc
, vous pouvez simplement les saisir après avoir émis :
dans vim
pour obtenir l'invite de commande.
Cependant, si vous mettez les lignes:
set foldmethod=indent
set foldnestmax=10
set nofoldenable
set foldlevel=2
comme indiqué dans le lien que vous avez donné, dans votre ~/.vimrc
, vous n'avez pas besoin de les saisir chaque fois que vous souhaitez utiliser le pliage dans un fichier. Le set nofoldenable
s'assure qu'à l'ouverture, les fichiers sont "normaux", c'est-à-dire non pliés.
La méthode de pliage par défaut de Vim est manual
ce qui signifie que les plis sont créés manuellement; sinon, il n'y a pas de pli à fermer ou à ouvrir avec za, zo, ou zc comme vous l'avez décrit. Mais, vous pouvez créer un pli en zf{motion}
en mode Normal ou zf en mode Visuel ; par exemple. zfj crée un pli pour la ligne courante et la suivante en mode Normal .
indent
La réponse acceptée, par @Anthon, décrit comment définir la méthode de pliage sur indent
; c'est-à-dire que le pliage est défini par le niveau d'indentations.
syntax
De manière plus pratique, les plis peuvent être créés automatiquement en fonction de la syntaxe de la langue du tampon actuel. Si vous utilisez un langage de programmation, appelons-le [~ # ~] l [~ # ~] , et vous avez une définition repliable de [~ # ~] l [~ # ~] (par exemple, vous avez installé un plugin Vim dans lequel les informations de pliage de [ ~ # ~] l [~ # ~] est défini, tel que c.vim pour C/C++, ou mode python pour Python), il vous suffit de définir la méthode de pliage sur syntax
:
set foldmethod=syntax
C'est ça. Les commandes les plus utiles pour travailler avec les plis sont:
foldlevel
de un.foldlevel
de un.foldlevel
à zéro - tous les plis seront ouverts.Vous n'avez pas à l'utiliser systématiquement: je sélectionne généralement manuellement les plis par le mouvement ou la section. Par exemple, le pliage d'un paragraphe est zfip
et le pliage des 20 lignes suivantes est zf20j
. Utilisez za
pour basculer et zd
pour supprimer.
Cela nécessite un peu plus de travail mais permet à votre pliage de refléter la tâche à accomplir.
Vous pouvez activer folding
dans la session en cours comme la réponse de @ Anthon. Mais si vous voulez le rendre permanent, vous devez définir au moins cette ligne dans .vimrc
aux travaux de pliage:
set foldmethod=indent
indent
est une sorte de pliage, vous pouvez en voir plus sur :help foldmethod
'foldmethod' 'fdm' string (default: "manual")
local to window
{not in Vi}
{not available when compiled without the +folding
feature}
The kind of folding used for the current window. Possible values:
fold-manual manual Folds are created manually.
fold-indent indent Lines with equal indent form a fold.
fold-expr expr 'foldexpr' gives the fold level of a line.
fold-marker marker Markers are used to specify folds.
fold-syntax syntax Syntax highlighting items specify folds.
fold-diff diff Fold text that is not changed.
Maintenant, chaque fois que vous ouvrez un fichier avec vim
, vous pouvez voir que le code est plié par la méthode que vous avez définie. Ensuite, vous pouvez utiliser za
, zc
, zo
.