Quando lavoro in vim, spesso ho una suddivisione, o divisioni, aperta contenente un file di aiuto.
Se chiudo altre finestre in modo :q
tale che vim venga lasciato in uno stato con solo le finestre di aiuto aperte, vim chiude l'intero editor, il che mi fa perdere la mia posizione nelle pagine di aiuto. es. dire che ho questo layout
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 | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
+------------------+-------------+-----------------+
Se dovessi entrare nella finestra contenente app_db.sql
un problema con il :q
comando, sorprendentemente l'intero editor andrebbe perso.
Spesso mi ci vuole molto tempo - fino a 15-20 minuti - per cercare l'aiuto per scoprire finalmente quel contenuto di aiuto, quindi anche se non è esattamente lavoro perso, è sicuramente molto tempo perso quando ciò accade.
Come posso evitare che vim chiuda l'editor stesso quando chiudo una finestra con solo l'aiuto di aprire le finestre?
Possibili soluzioni che ho considerato
- Semplicemente non chiudere l'ultima finestra quando ci sono finestre di aiuto aperte.
- il problema è che non sto prestando attenzione a cosa c'è in altre finestre quando chiudo la finestra corrente.
- Uso
mksession
- questo richiede che tu sappia in anticipo che è necessario
:mksession
e la chiusura dell'editor si verifica sempre in modo imprevisto.
- questo richiede che tu sappia in anticipo che è necessario
- Utilizzare un plug-in come ossessione di VIM che aggiorna costantemente un
Session.vim
file.- Attualmente ho messo in pausa l'utilizzo di vim-obsession a causa (ironicamente), i
Session.vim
file vim obsession spesso non ripristinano le schede contenenti le pagine della guida, ma iSession.vim
file generati da:mksession
ripristinano le schede con le finestre della guida. (Anche un altro problema con le etichette delle schede non corrispondenti alle schede stesse)
- Attualmente ho messo in pausa l'utilizzo di vim-obsession a causa (ironicamente), i
~/.vimrc
e terrò d'occhio eventuali strani effetti collaterali
wincmd p
non funziona perché p è forse nulla. Dovrò provare un po 'più tardi quando avrò tempo
obsession
salverà finestre di aiuto se si aggiunge help
ad sessionoptions
un certo tempo prima di salvare la sessione: set sessionoptions+=help
.
QuitPre
evento che riporterebbe lo stato attivo alla finestra precedente prima di chiudere quello attuale:autocmd QuitPre * wincmd p