Confusion sur le pliage de vim - comment désactiver?


116
  1. Lorsque j'ouvre le fichier, il ressemble à ceci: entrez la description de l'image ici ou même ceci entrez la description de l'image ici
  2. Lorsque j'ouvre tous les plis, ils sont à nouveau fermés lorsque j'ai navigué vers un autre tampon et que je suis revenu.
  3. Pour pouvoir travailler avec, je dois appliquer à zRchaque fois lors de l'ouverture d'un buffer.

Je les ai installés dans .vimrc:

set foldlevelstart=99
set foldlevel=99

Veuillez m'indiquer comment désactiver le pliage, ou au moins faire la navigation vers un autre tampon pour ne pas fermer ceux ouverts.


2
Lors du premier démarrage de vim, exécutez :set foldlevelet :set foldlevelstartpour voir à quoi ils sont définis. Mon hypothèse initiale est que ces valeurs sont réinitialisées quelque part. Lorsque j'ajoute ces valeurs à mon vimrc, tout fonctionne comme prévu.
cledoux

Réponses:


209

Tu n'es pas seul.

set nofoldenable    " disable folding

7
Notez que cela n'affecte pas vimdiff. Lorsque vim crée une fenêtre de comparaison, il semble remplacer l' foldenableoption. La seule solution de contournement que j'ai trouvée est de définir la contextsous-option de diffoptsur quelque chose de vraiment énorme. ex:set diffopt+=context:99999
Laurence Gonsalves

14
c'était vim-markdown . Pour désactiver le pliage par vim-markdown, utilisezlet g:vim_markdown_folding_disabled=1
BenjaminGolder


2
J'aime mieux la solution de glts ci-dessous: utilisez 'zi' pour activer le pliage. L'un des rares gros problèmes avec vim est le grand nombre de choses à retenir. Les petites choses comme «zi» au lieu de «pliable» sont envoyées par Dieu!
Thierry

1
ne semble pas fonctionner pour moi: (le code python est toujours plié.
weima

55

Le moyen le plus simple de désactiver (et d'activer) le pliage à la volée est zi.

ziest la commande de mode normal qui bascule 'foldenable', tout comme :set foldenable!.

Mnémonique: "fold i nvert". Voir :h zi.


44

Ajoutez set nofoldenableà votre ~ / .vimrc pour désactiver le pliage.


@Magnus: C'est délibérément fait par vimdiffpour éviter d'afficher beaucoup de lignes identiques. Le cas d'utilisation est différent, il n'est donc pas affecté par le nofoldenable. zRouvre tous les plis; Je ne connais pas de paramètre qui désactive le repliage vimdiff. (Comme c'est le seul endroit où le pliage ne me dérange pas.)
DevSolar

16

Voici un article qui résume brièvement et de manière concise pourquoi le pliage est cool. La raison en une seule ligne est que le pliage facilite la navigation dans de très gros fichiers.

Si vous voulez laisser le pliage activé, et simplement toujours commencer avec tous les plis ouverts, le wiki vim vous explique comment. La méthode qui vous intéresse serait probablement la méthode de l'autocommande.

" Tweak the event and filetypes matched to your liking. 
" Note, perl automatically sets foldmethod in the syntax file
autocmd Syntax c,cpp,vim,xml,html,xhtml setlocal foldmethod=syntax
autocmd Syntax c,cpp,vim,xml,html,xhtml,perl normal zR

Je recommanderais également de rechercher des méthodes de pliage personnalisées pour la langue que vous utilisez. Le simple fait de googler "vim <insérer la langue ici> pliage" devrait faire apparaître plusieurs options. Jouez avec les différentes options jusqu'à ce que vous trouviez une méthode de pliage que vous aimez.


4

J'ai ajouté cette ligne à mon .vimrcfichier car j'ai eu le même problème:

autocmd FileType * exe "normal zR"

Cette commande sera exécutée chaque fois que vous ouvrez un fichier automatiquement. Vous ne verrez donc pas le bogue et la fonction de pliage ne sera pas perdue aussi)


3

Juste en ajouter un de plus pour le rendre complet au point de discussion.

Pour activer le pliage de code:

:set foldenable ou en bref, :set fen

Pour désactiver le pliage de code:

:set nofoldenable ou en bref, :set nofen

Une fois que vous activez le pliage de code, vous aurez toutes les commandes comme zf,zo etcvous le souhaitez en fonction du réglage des :set fdm=xxxxvaleurs typiquesexpr,syntax,manual etc.


1

Désolé, si je réponds à une question connexe, mais j'ai trouvé utile d'afficher deux fichiers avec le pliage désactivé avec quelque chose comme ceci:

vim "+set nofen" -O file1 file2

1

Vim rend incroyablement difficile la désactivation du pliage, en particulier lors de l'utilisation de vimdiff.
Aucune des solutions publiées ci-dessus n'a fonctionné pour moi, mais cela a fonctionné (ajoutez à ~ / .vimrc):

au WinEnter * set nofen
au WinLeave * set nofen

1

Je mis foldlevel=20, foldlevelstart=20et je l' utilise foldmethod=syntax. Cela m'aide à travailler avec un pliage correct dans vim.

set nofoldenable désactiver le pliage mais parfois j'en ai besoin

vim.wikia

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.