2011-01-07 15 views
12

A menudo me encuentro con la situación en la que tengo muchas líneas dobladas y escribo, digamos un nuevo bloque de código, sobre estos pliegues. Tan pronto como escribo un '{', todos los pliegues de abajo se abren. Aunque es legítimo que vim lo haga, es irritante cerrar todos los pliegues nuevamente. ¿Hay alguna forma de evitar esta situación?vim pliegues se abren cuando se da una abrazadera de apertura/paréntesis sin igual

+0

lo que pueda' Reproduzca este problema con una instalación vim predeterminada y un archivo Java simple ... – krakover

+0

Tampoco puedo reproducir esto. Curioso, ¿tienes 'showmatch' encendido? ¿Esta configuración afecta el comportamiento? –

+0

@ r.v Me pregunto ¿qué tienes en tu 'foldmarker'? – ZyX

Respuesta

18

Tuve el mismo problema y pude resolverlo usando this vimtip.

pequeño fragmento de la descripción consejo:

Si está utilizando cualquier tipo de método de plegado automático, ya sea marcador, la sintaxis, o la expresión de plegado, inserción de texto que empieza por un pliegue se abrirá automáticamente todos los pliegues por debajo el punto de inserción. Esto puede ser muy molesto Para evitar esto, puede cambiar temporalmente a un método de plegado manual al ingresar al modo de inserción, y volver al salir de él.

El truco es fijar las foldmethod a manual se inicia durante la edición:

autocmd InsertEnter * if !exists('w:last_fdm') | let w:last_fdm=&foldmethod | setlocal foldmethod=manual | endif 

Cuando haya terminado con la edición, restablecer foldmethod a su valor original:

autocmd InsertLeave,WinLeave * if exists('w:last_fdm') | let &l:foldmethod=w:last_fdm | unlet w:last_fdm | endif 
+0

Esto funciona. ¡Gracias! –

Cuestiones relacionadas