So verlassen Sie Vim vorübergehend und kehren zurück


303

Wie könnte ich Vim nicht beenden :qund dann zurückkehren, um mit der Bearbeitung fortzufahren?

Antworten:


571

Angenommen, Terminal Vim hat einen Geschmack von * nix:

So setzen Sie Ihr laufendes Vim aus

Ctrl + Z

wird den Prozess unterbrechen und zu Ihrer Shell zurückkehren

fg

wird fortgesetzt (bringen f Erz g Runde) Ihre suspendiert Vim.

So starten Sie eine neue Shell

Starten Sie eine Subshell mit:

:sh

(wie konfiguriert von)

:set shell?

oder

:!bash

gefolgt von:

Ctrl+ D(oder exit, aber warum so viel tippen?)

um die Granate zu töten und zu Vim zurückzukehren.



1
Was ist, wenn ich meinen Server während der Bearbeitung meiner Datei weiter ausführen möchte? nodemon app.jsNehmen 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?
Costa

5
oder jobsum die Vordergrundprozesse mit einem (für mich) besser lesbaren Titel zu besuchen. Dann zB fg %2die zweite auswählen.
Isomorphismen

Wenn dies bei Ihnen nicht funktioniert und control-zals "Rückgängig" fungiert, überprüfen Sie Ihren vimrc, um festzustellen, ob er behave mswinvorhanden ist. Wenn es ist, entfernen Sie es und control-zwird funktionieren
schuess

3
In Windows können Sie zu vim zurückkehren, wenn Sie exit
eingeben

107

Sie können verwenden :sh, um zu Ihrer Standard-Shell zurückzukehren. Wenn Sie dann $ exitan der Shell-Eingabeaufforderung eingeben , kehren Sie zu Vim zurück.


1
Ich wünschte, ich könnte dies härter unterstützen. Genau deshalb: Shell existiert.
Randy Morris

8
Um fair zu sein, möchten Sie manchmal dieselbe Umgebung, keine Sub-Shell-Umgebung. Wenn Sie also nach Änderungen an Umgebungsvariablen suchen, wenn Sie Vim vollständig beenden, sollten Sie STRG-z /: sus verwenden.
Tango Bravo

Kann verwenden $ ps, um vor dem Aufruf festzustellen, ob wir uns in einer vim-Sub-Shell befinden, $ exitum ein versehentliches Schließen des Terminals zu vermeiden. Fand dies hier (ich habe den auf der Website erwähnten Eingabeaufforderungsindikator nicht ausprobiert).
Daniel

34

Sie können vorübergehend in den Shell-Modus wechseln, indem Sie:

:! <command>

sowie

:! ls

14

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.


13

Sie können dies auch tun, indem Sie :susin die Schale fallen und zurück fg.


5

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:

  1. 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.

  2. 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.


5

Um die Antwort des Benutzers Zen zu erweitern , können Sie der ~/.vimrcDatei die folgende Zeile hinzufügen , um schnell zwischen Bash und Vim umzuschalten:

noremap <C-d> :sh<cr>

Fünf Jahre später möchte ich nur erwähnen, dass die Verwendung von CD wahrscheinlich ein schlechter Rat ist, da sie das Standardverhalten von Vim überschreibt. Strg-D-Fenster wird standardmäßig in den Puffer verschoben. siehe vimdoc.sourceforge.net/htmldoc/scroll.html#CTRL-D
xaa

3

Geben Sie einfach ein fgund kehren Sie zu Ihrem zuletzt angehaltenen Programm zurück.


3

Wenn Sie Neovim verwenden , können Sie Folgendes tun:

  • :terminal Befehl zum Aufrufen eines Terminalfensters.
  • Mach deine Terminal-Sachen
  • Geben Sie ein exit, um den Terminalprozess abzubrechen
  • Drücken Sie eine beliebige Taste, um zu Neovim zurückzukehren

0

Wenn es Ihnen nichts ausmacht, Ihre Maus ein wenig zu benutzen:

  • Starten Sie Ihr Terminal,
  • eine Datei auswählen,
  • Wählen Sie Tab öffnen .

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 ( :shellund beenden) zu müssen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.