Wenn ich in vim arbeite, habe ich oft einen oder mehrere Splits geöffnet, die Hilfedateien enthalten.
Wenn ich andere Fenster :q
so schließe, dass vim in einem Zustand verbleibt, in dem nur Hilfefenster geöffnet sind, schließt vim den gesamten Editor, wodurch ich meine Position auf den Hilfeseiten verliere. Beispiel: Ich habe dieses 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 | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
+------------------+-------------+-----------------+
Wenn ich das Fenster mit app_db.sql
einem Problem mit dem :q
Befehl betreten würde, würde überraschenderweise der gesamte Editor verloren gehen.
Ich brauche oft eine lange Zeit - bis zu 15 bis 20 Minuten -, um die Hilfe zu durchsuchen, um diesen Hilfeinhalt endgültig zu entdecken. Auch wenn es sich nicht gerade um verlorene Arbeit handelt, geht in diesem Fall definitiv viel Zeit verloren.
Wie kann ich verhindern, dass vim den Editor selbst schließt, wenn ich ein Fenster schließe, in dem nur Hilfefenster geöffnet werden?
Mögliche Lösungen habe ich mir überlegt
- Schließen Sie einfach nicht das letzte Fenster, wenn Hilfefenster geöffnet sind.
- Das Problem dabei ist, dass ich beim Schließen des aktuellen Fensters nicht darauf achte, was sich in anderen Fenstern befindet.
- Verwenden
mksession
- Dies setzt voraus, dass Sie im Voraus wissen, dass Sie dies tun müssen,
:mksession
und dass das Schließen des Editors immer unerwartet erfolgt.
- Dies setzt voraus, dass Sie im Voraus wissen, dass Sie dies tun müssen,
- Verwenden Sie ein Plugin wie vim obsession, das eine
Session.vim
Datei ständig aktualisiert .- Ich habe derzeit die Verwendung von vim-obsession unterbrochen, weil (ironischerweise) die
Session.vim
Dateien , die vim obsession erstellt, häufig keine Registerkarten mit Hilfeseiten wiederherstellen, sondern die vonSession.vim
generierten Dateien:mksession
die Registerkarten mit Hilfefenstern wiederherstellen. (Auch ein weiteres Problem, bei dem Tab-Beschriftungen nicht mit den Tabs selbst übereinstimmen)
- Ich habe derzeit die Verwendung von vim-obsession unterbrochen, weil (ironischerweise) die
~/.vimrc
und alle seltsamen Nebenwirkungen im Auge behalten
wincmd p
funktioniert nicht, weil p möglicherweise null ist. Ich muss etwas später testen, wenn ich Zeit habe
obsession
speichern Hilfefenster, wenn Sie hinzufügen , help
um sessionoptions
einige Zeit vor der Sitzung zu speichern: set sessionoptions+=help
.
QuitPre
Ereignis automatisch zu beobachten, um den Fokus wieder auf das vorherige Fenster zuautocmd QuitPre * wincmd p