Problema: mover líneas verticalmente cierra pliegues

9

Cuando muevo líneas con m(p :m+1. Ej. ) Todos mis pliegues están cerrados. Entonces puedo abrir el plegado zvnuevamente y el cursor estará en la posición a la que me moví. Uso plegado con {{{ }}}marcas y tengo set foldmethod=markeren mi .vimrc.

¿Cómo puedo evitar que vim cierre los pliegues al mover líneas?

dnieder
fuente
1
No puedo reproducir esto usando vim -u NONE -U NONE -N. Puede ser un problema con su vimrc o un complemento.
EvergreenTree
2
Me pasa incluso con -u NINGUNO -U NINGUNO -N. Uso v7.4 en arch linux
dnieder
1
@EvergreenTree Tengo el mismo problema. Con vim -u NONE -U NONE -N fold-testy solo ajuste foldmethod=marker. Estoy ejecutando Vim 7.4.712 en Arch. Si intento lo mismo con Vim en Vim 7.4.160 en CentOS 7, obtengo exactamente los resultados opuestos (todos los pliegues se abren cuando se usa :m+1). Y Vim 7.2.441 en CentOS 6 funciona bien ... Todas las fold*configuraciones parecen ser las mismas en estas máquinas.
Martin Tournoij
1
Eso es muy extraño Esto parece un error.
EvergreenTree
3
Eso podría ser causado por el parche 7.4.700 que intenta evitar que los pliegues se vuelvan inválidos en: mover comandos
Christian Brabandt

Respuestas:

2

Puede desactivar el plegado antes de hacerlo :m+1mediante el uso zi. Y luego habilítelo nuevamente con zi.

También puede agregar una asignación especial para eso en su .vimrc:

""move line up/down with Shift+up/down
nnoremap <S-Up> zi:m-2<CR>zi
nnoremap <S-Down> zi:m+<CR>zi
inoremap <S-Up> <Esc>zi:m-2<CR>zia
inoremap <S-Down> <Esc>zi:m+<CR>zia
usuario2683458
fuente
Esto funcionó para mí. (aunque utilicé diferentes enlaces)
IanEdington
1

El plegado es un mecanismo bastante complicado (vea otra respuesta que di sobre los pliegues para una discusión matizada del escaneo plegado).

Para dar una respuesta completa, necesitaremos ver qué tipo de complementos está cargando al iniciar una instancia de vim.

Apuesto a que hay algunos complementos que están alterando la configuración predeterminada de vim ( vim -u NONEdebería haber reproducido esto). Cualquier complemento que cambie elfoldmethod es una causa probable (trataría de eliminarlos 1 por 1 y ver qué causa el problema)

Si no quiere entrometerse con sus complementos, le recomiendo ajustar manualmente la configuración de sintaxis + análisis y luego abra un búfer de prueba para confirmar su funcionalidad. Puede ser un viaje frustrante lograr que juegue bien, pero con una incansable excavación :helpdeberías poder luchar contra la bestia que se está doblando.

Dan Bradbury
fuente