Confusión sobre el plegado de vim: ¿cómo deshabilitarlo?


116
  1. Cuando abro el archivo, se ve así: ingrese la descripción de la imagen aquí o incluso esto ingrese la descripción de la imagen aquí
  2. Cuando abro todos los pliegues, se vuelven a cerrar cuando navegué a otro búfer y regresé.
  3. Para poder trabajar con él, tengo que aplicar zRcada vez que abro un búfer.

Tengo estos configurados en .vimrc:

set foldlevelstart=99
set foldlevel=99

Indíqueme cómo deshabilitar el plegado, o al menos hacer la navegación a otro búfer para no cerrar los abiertos.


2
Cuando inicie vim por primera vez, ejecute :set foldlevely :set foldlevelstartpara ver en qué se establecen. Mi suposición inicial es que estos valores se están restableciendo en alguna parte. Cuando agrego esos valores a mi vimrc, todo funciona como se esperaba.
cledoux

Respuestas:


209

No estás solo.

set nofoldenable    " disable folding

7
Tenga en cuenta que esto no afecta a vimdiff. Cuando vim crea una ventana de diferencias, parece anular la foldenableopción. La única solución que he encontrado es establecer la contextsubopción de diffopten algo realmente enorme. por ejemplo:set diffopt+=context:99999
Laurence Gonsalves

14
fue vim-markdown . Para deshabilitar el plegado por vim-markdown, uselet g:vim_markdown_folding_disabled=1
BenjaminGolder


2
Me gusta más la solución de glts a continuación: use 'zi' para alternar el plegado. Uno de los pocos GRANDES problemas con vim es la gran cantidad de cosas para recordar. ¡Pequeñas cosas como 'zi' en lugar de 'plegable' son enviadas por Dios!
Thierry

1
no parece funcionar para mí :( el código de Python todavía está doblado.
weima

55

La forma más fácil de deshabilitar (y habilitar) el plegado sobre la marcha es zi.

zies el comando de modo normal que alterna 'foldenable', al igual que :set foldenable!.

Mnemónico: "fold i nvert". Ver :h zi.


44

Agregue set nofoldenablea su ~ / .vimrc para deshabilitar el plegado.


@Magnus: Eso se hace deliberadamente vimdiffpara evitar mostrar muchas líneas idénticas. El caso de uso es diferente, por lo que no se ve afectado por nofoldenable. zRabre todos los pliegues; No conozco una configuración que deshabilite el plegado vimdiff. (Ya que es el único lugar donde no me molesta doblar)
DevSolar

16

Aquí hay un artículo que resume breve y concisamente por qué doblar es genial. La única razón es que el plegado facilita la navegación de archivos muy grandes.

Si desea dejar el plegado habilitado y simplemente comenzar siempre con todos los pliegues abiertos, la wiki de vim le indica cómo. El método que le interesa probablemente sea el método de 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

También recomendaría buscar métodos de plegado personalizados para el idioma que usa. Simplemente buscando en Google "vim <insertar idioma aquí> plegable" debería aparecer una serie de opciones. Juega con las diferentes opciones hasta que encuentres un método de plegado que te guste.


4

He agregado esta línea a mi .vimrcarchivo porque tuve el mismo problema:

autocmd FileType * exe "normal zR"

Este comando se ejecutará cada vez que abra un archivo automáticamente. Para que no vea el error y la función de plegado tampoco se perderá)


3

Simplemente agregue uno más para completarlo hasta el punto de discusión.

Para habilitar el plegado de código:

:set foldenable o en resumen, :set fen

Para deshabilitar el plegado de código:

:set nofoldenable o en resumen, :set nofen

Una vez que habilite el plegado de código, tendrá todos los comandos como zf,zo etcdesee de acuerdo con la configuración de :set fdm=xxxxdonde están los valores típicosexpr,syntax,manual etc.


1

Lo siento, si estoy respondiendo una pregunta relacionada, pero encontré útil mostrar dos archivos junto con el plegado desactivado con algo como esto:

vim "+set nofen" -O file1 file2

1

Vim hace que sea increíblemente difícil desactivar el plegado, especialmente cuando se usa vimdiff.
Ninguna de las soluciones publicadas anteriormente funcionó para mí, pero esto sí (agregar a ~ / .vimrc):

au WinEnter * set nofen
au WinLeave * set nofen

1

Me puse foldlevel=20, foldlevelstart=20y lo uso foldmethod=syntax. Me ha ayudado a trabajar con el plegado correcto en vim.

set nofoldenable deshabilitar el plegado pero a veces lo necesito

vim.wikia

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.