Cuando estoy trabajando en vim, a menudo tengo una división, o divisiones, abiertas que contienen archivos de ayuda.
Si cierro otras ventanas usando :q
tal que vim quedaría en un estado con solo ventanas de ayuda abiertas, vim cierra todo el editor, lo que hace que pierda mi posición en las páginas de ayuda. por ejemplo, decir que tengo este diseño
tab1 (this is the only tab open)
+------------------+-------------+-----------------+
| | | |
| |:h usr_26.txt| |
| A normal file, | | :h change.txt|
| containing code |section 26.2 | |
| e.g. |line 47 | line 272 |
| | | |
| app_db.sql | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
+------------------+-------------+-----------------+
Si tuviera que entrar en la ventana que contiene app_db.sql
un problema con el :q
comando, sorprendentemente se perdería todo el editor.
A menudo me lleva mucho tiempo, hasta 15-20 minutos, buscar la ayuda para finalmente descubrir ese contenido de ayuda, por lo que, aunque no es exactamente el trabajo perdido, definitivamente se pierde mucho tiempo cuando esto sucede.
¿Cómo puedo evitar que vim cierre el editor cuando cierro una ventana con solo ventanas de ayuda abiertas?
Posibles soluciones que he considerado
- Simplemente no cierre la última ventana cuando haya ventanas de ayuda abiertas.
- El problema con esto es que no estoy prestando atención a lo que hay en otras ventanas cuando cierro la ventana actual.
- Utilizar
mksession
- esto requiere que sepa de antemano que lo necesita
:mksession
y que el cierre del editor siempre ocurre inesperadamente.
- esto requiere que sepa de antemano que lo necesita
- Use un complemento como vim obsession que actualiza constantemente un
Session.vim
archivo.- Actualmente he pausado el uso de vim-obsession debido a (irónicamente) que los
Session.vim
archivos que vim obsession crea a menudo no restauran pestañas que contienen páginas de ayuda, pero losSession.vim
archivos generados por:mksession
sí restauran las pestañas con ventanas de ayuda. (También otro problema con las etiquetas de las pestañas que no coinciden con las pestañas mismas)
- Actualmente he pausado el uso de vim-obsession debido a (irónicamente) que los
fuente
QuitPre
evento que devolvería el foco a la ventana anterior antes de cerrar la ventana actual:autocmd QuitPre * wincmd p
~/.vimrc
wincmd p
no funciona porque p es nulo tal vez. Tendré que probar un poco más tarde cuando tenga tiempoobsession
salvará ventanas de ayuda si se agregahelp
asessionoptions
una cierta hora antes de guardar la sesión:set sessionoptions+=help
.Respuestas:
usar el comando en
:clo[se]
lugar de:q
parece haber resuelto el problema para mí.Es decir, si tengo un problema
:clo
con el diseño de la ventana anterior, hace que vim arrojeDe hecho, parece que
:close
estaba destinado a esta situación, es decir, para evitar el cierre accidental del editor cuando todo lo que quería hacer era cerrar una ventana (o pestaña)desde
:h windows.txt
fuente