Wie könnte ich Vim nicht beenden :q
und dann zurückkehren, um mit der Bearbeitung fortzufahren?
303
Angenommen, Terminal Vim hat einen Geschmack von * nix:
Ctrl + Z
wird den Prozess unterbrechen und zu Ihrer Shell zurückkehren
fg
wird fortgesetzt (bringen f Erz g Runde) Ihre suspendiert Vim.
Starten Sie eine Subshell mit:
:sh
(wie konfiguriert von)
:set shell?
:!bash
gefolgt von:
Ctrl+ D(oder exit
, aber warum so viel tippen?)
um die Granate zu töten und zu Vim zurückzukehren.
ps
um Vordergrundprozesse unix.stackexchange.com/questions/6115/… anzuzeigennodemon app.js
Nehmen wir zum Beispiel an, ich tue es (nodemon aktualisiert den Server bei Dateibearbeitungen für Sie) und möchte dann zu meiner vim-Bearbeitung zurückkehren. Kann ich das ohne zwei separate Terminalfenster machen?jobs
um die Vordergrundprozesse mit einem (für mich) besser lesbaren Titel zu besuchen. Dann zBfg %2
die zweite auswählen.control-z
als "Rückgängig" fungiert, überprüfen Sie Ihren vimrc, um festzustellen, ob erbehave mswin
vorhanden ist. Wenn es ist, entfernen Sie es undcontrol-z
wird funktionierenexit
Sie können verwenden
:sh
, um zu Ihrer Standard-Shell zurückzukehren. Wenn Sie dann$ exit
an der Shell-Eingabeaufforderung eingeben , kehren Sie zu Vim zurück.quelle
$ ps
, um vor dem Aufruf festzustellen, ob wir uns in einer vim-Sub-Shell befinden,$ exit
um ein versehentliches Schließen des Terminals zu vermeiden. Fand dies hier (ich habe den auf der Website erwähnten Eingabeaufforderungsindikator nicht ausprobiert).Sie können vorübergehend in den Shell-Modus wechseln, indem Sie:
sowie
quelle
Wenn Sie sich auf einem Unix-System befinden, wird Ctrl+ ZVim anhalten und Ihnen eine Shell geben.
Geben Sie ein
fg
, um zurückzukehren. Beachten Sie, dass Vim während der Bearbeitung eine Auslagerungsdatei erstellt und das Anhalten von Vim diese Datei nicht löscht (Sie beenden Vim schließlich nicht). Auf dummen Terminals war diese Methode ziemlich Standard für Edit-Compile-Edit-Zyklen mit vi . Ich habe gerade herausgefunden, dass gVim für mich die Eingabe minimiert Z.quelle
Sie können dies auch tun, indem Sie
:sus
in die Schale fallen und zurückfg
.quelle
Es gibt verschiedene Möglichkeiten, Vim zu verlassen und bei Ihrer Rückkehr alles gleich zu haben. In Vim selbst gibt es eine sehr gute Dokumentation, in der die verschiedenen Möglichkeiten erläutert werden. Sie können den folgenden Befehl in vim verwenden, um auf die entsprechende Hilfeseite zuzugreifen:
:help usr_21
Um Ihnen eine kurze Zusammenfassung zu geben, finden Sie hier die verschiedenen Methoden zum Beenden und Zurückkehren mit intakter Sitzung:
Anhalten und fortsetzen - Damit beenden Sie Vim nicht wirklich. Sie verstecken Ihre Sitzung einfach im Hintergrund, bis Sie sie benötigen. Wenn Sie Ihren Computer zurücksetzen oder einen Kill-Befehl an Vim senden, verlieren Sie Ihre Sitzung. Dies ist gut, wenn Sie vorübergehend zu einer anderen Aufgabe wechseln möchten. Wenn dies jedoch der Fall ist, sollten Sie stattdessen das Dienstprogramm GNU Screen verwenden.
Sitzungen - Dies ist die wahre Methode zum Speichern Ihrer Sitzung zwischen Instanzen von Vim. Selbst wenn Sie Vim wirklich verlassen, wird Ihre Sitzung bei Ihrer Rückkehr für Sie da sein. Dies ist wahrscheinlich das, wonach Sie suchen.
quelle
Um die Antwort des Benutzers Zen zu erweitern , können Sie der
~/.vimrc
Datei die folgende Zeile hinzufügen , um schnell zwischen Bash und Vim umzuschalten:quelle
Geben Sie einfach ein
fg
und kehren Sie zu Ihrem zuletzt angehaltenen Programm zurück.quelle
Wenn Sie Neovim verwenden , können Sie Folgendes tun:
:terminal
Befehl zum Aufrufen eines Terminalfensters.exit
, um den Terminalprozess abzubrechenquelle
Wenn es Ihnen nichts ausmacht, Ihre Maus ein wenig zu benutzen:
Dadurch wird eine neue Registerkarte auf dem Terminal erstellt, auf der Sie Vim ausführen können. Verwenden Sie nun Ihre Maus, um zum / vom Terminal zu wechseln. Ich bevorzuge dies, anstatt immer tippen (
:shell
und beenden) zu müssen.quelle