Confusione sul pieghevole vim: come disabilitare?


116
  1. Quando apro il file sembra questo: inserisci qui la descrizione dell'immagine o anche questo inserisci qui la descrizione dell'immagine
  2. Quando apro tutte le pieghe, vengono chiuse di nuovo quando sono passato a un altro buffer e sono tornato.
  3. Per poter lavorare con esso, devo applicare zRogni volta che apro un buffer.

Li ho impostati in .vimrc:

set foldlevelstart=99
set foldlevel=99

Per favore indicami come disabilitare il pieghevole, o almeno fare la navigazione in un altro buffer per non chiudere quelli aperti.


2
Al primo avvio di vim, corri :set foldlevele :set foldlevelstartper vedere a cosa sono impostati. La mia ipotesi iniziale è che questi valori vengano ripristinati da qualche parte. Quando aggiungo questi valori al mio vimrc, tutto funziona come previsto.
cledoux

Risposte:


209

Non sei solo.

set nofoldenable    " disable folding

7
Nota che questo non influisce su vimdiff. Quando vim crea una finestra diff sembra sovrascrivere l' foldenableopzione. L'unica soluzione alternativa che ho trovato è impostare la contextsotto-opzione di diffoptsu qualcosa di veramente enorme. ad esempio:set diffopt+=context:99999
Laurence Gonsalves

14
era vim-markdown . Per disabilitare il fold tramite vim-markdown, usalet g:vim_markdown_folding_disabled=1
BenjaminGolder


2
Mi piace di più la soluzione di glts qui sotto: usa 'zi' per attivare / disattivare foldenable. Uno dei pochi GRANDI problemi con vim è il numero di cose da ricordare. Piccole cose come "zi" invece di "pieghevole" sono inviate da Dio!
Thierry

1
non sembra funzionare per me :( il codice python è ancora ripiegato.
weima

55

Il modo più semplice per disabilitare (e abilitare) la piegatura al volo è zi.

ziè il comando della modalità normale che si attiva 'foldenable', proprio come :set foldenable!.

Memo: "piega i nvert". Vedi :h zi.


44

Aggiungilo set nofoldenableal tuo ~ / .vimrc per disabilitare il pieghevole.


@ Magnus: Questo è stato fatto deliberatamente da vimdiffper evitare di mostrare molte linee identiche. Il caso d'uso è diverso, quindi non è influenzato da nofoldenable. zRapre tutte le pieghe; Non conosco un'impostazione che disabiliti il ​​ripiegamento vimdiff. (Dato che è l'unico posto in cui la piegatura non mi

16

Ecco un articolo che riassume brevemente e in modo conciso perché piegare è bello. L'unico motivo è che la piegatura rende la navigazione di file molto grandi un gioco da ragazzi.

Se vuoi lasciare la piegatura abilitata, e semplicemente iniziare sempre con tutte le pieghe aperte, il wiki di vim spiega come. Il metodo che ti interessa sarebbe probabilmente il metodo autocomando.

" 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

Suggerirei anche di cercare metodi di piegatura personalizzati per la lingua che utilizzi. Semplicemente googling "vim <inserire la lingua qui> pieghevole" dovrebbe far apparire una serie di opzioni. Gioca con le diverse opzioni finché non trovi un metodo di piegatura che ti piace.


4

Ho aggiunto questa riga al mio .vimrcfile perché ho avuto lo stesso problema:

autocmd FileType * exe "normal zR"

Questo comando verrà eseguito ogni volta che aprirai un file automaticamente. Quindi non vedrai il bug e anche la funzione di piegatura non andrà persa)


3

Basta aggiungerne un altro per completarlo al punto di discussione.

Per abilitare la piegatura del codice:

:set foldenable o in breve, :set fen

Per disabilitare la piegatura del codice:

:set nofoldenable o in breve, :set nofen

Una volta abilitato il codefolding, avrai tutti i comandi come zf,zo etcdesideri in base all'impostazione di :set fdm=xxxxdove sono i valori tipiciexpr,syntax,manual etc.


1

Scusa, se sto rispondendo alla domanda correlata, ma ho trovato utile visualizzare due file insieme a pieghevole disattivato con qualcosa del genere:

vim "+set nofen" -O file1 file2

1

Vim rende incredibilmente difficile disabilitare la piegatura, specialmente quando si usa vimdiff.
Nessuna delle soluzioni sopra pubblicate ha funzionato per me, ma questo ha funzionato (aggiungi a ~ / .vimrc):

au WinEnter * set nofen
au WinLeave * set nofen

1

Ho impostato foldlevel=20, foldlevelstart=20e io uso foldmethod=syntax. Mi aiuta a lavorare con la piegatura corretta in vim.

set nofoldenable disabilita la piegatura ma a volte ne ho bisogno

vim.wikia

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.