Wenn ich in vim arbeite, habe ich oft einen oder mehrere Splits geöffnet, die Hilfedateien enthalten.
Wenn ich andere Fenster :qso 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.sqleinem Problem mit dem :qBefehl 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,
:mksessionund 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.vimDatei ständig aktualisiert .- Ich habe derzeit die Verwendung von vim-obsession unterbrochen, weil (ironischerweise) die
Session.vimDateien , die vim obsession erstellt, häufig keine Registerkarten mit Hilfeseiten wiederherstellen, sondern die vonSession.vimgenerierten Dateien:mksessiondie 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
~/.vimrcund alle seltsamen Nebenwirkungen im Auge behalten
wincmd pfunktioniert nicht, weil p möglicherweise null ist. Ich muss etwas später testen, wenn ich Zeit habe
obsessionspeichern Hilfefenster, wenn Sie hinzufügen , helpum sessionoptionseinige Zeit vor der Sitzung zu speichern: set sessionoptions+=help.
QuitPreEreignis automatisch zu beobachten, um den Fokus wieder auf das vorherige Fenster zuautocmd QuitPre * wincmd p