Die Frage wird am besten durch Beispiele gegeben:
vim example.txt #Opens Vim on new or existing file
Ctrl+Z
vim someother.txt
Ctrl+Z
vim example.txt #Auto-runs `fg 1` since example.txt is already open
Ist das möglich?
linux
bash
job-control
Alex
quelle
quelle
screen
virtuelle Terminals zu verwenden oder zu wechseln.Antworten:
Nein. Vim (oder jede andere Anwendung in dieser Angelegenheit) kann nicht mitteilen, dass stattdessen eine andere Aktion ausgeführt werden soll.
quelle
M-x shell
option; In vim!
folgt ein Befehl zum Ausführen von Shell-Befehlen sowie "system ()" und andere Funktionen, die in vimrc verwendet werden können.Möglicherweise möchten Sie die Verwendung von VIM-Puffern zum Bearbeiten mehrerer Dateien in Betracht ziehen.
Bearbeiten Sie beide Dateien
vim example.txt someother.txt
und wechseln Sie dann mit zwischen ihnen:buffer <filename>
.Siehe auch den Tipp zum leichteren Umschalten von Puffern und die häufig gestellten Fragen zu Vim-Puffern .
quelle
:e <file>
.vim $1
mitnano $1
oderpasswordmanagerpro $1
usw. ersetzenEine Beispiellösung funktioniert unter bash (erfordert paste, grep, sed). Es ist spezifisch für Vim, kann aber an einen anderen Editor angepasst werden.
Genießen!
quelle
Ich glaube nicht, dass es eine so generische Möglichkeit gibt, Jobs wiederzuverwenden.
Für Ihren Bearbeitungsworkflow möchten Sie möglicherweise zu Emacs wechseln. Anstatt Strg + Z zu drücken, um zur Shell zurückzukehren, können Sie eine untergeordnete Shell in einem Emacs-Puffer mit
M-x ansi-term
oder ausführenM-x shell
und zwischen der Shell und Ihren Bearbeitungspuffern hin- und herschalten oder sogar die Ansicht teilen, um beide gleichzeitig anzuzeigen. Emacs verfolgt das Arbeitsverzeichnis der Shell. Wenn Sie also im Dateisystem navigieren und entscheiden, dass Sie eine Datei öffnen möchtenemacs somefile
, müssen Sie nur angeben, dass Emacs sie öffnen soll,C-x C-f somefile<RET>
und die Datei wird in einem anderen Puffer geöffnet und es wird zu ihr gewechselt .Sie können auch den Emacs-Server starten und ausführen
emacsclient somefile
, um der vorhandenen Emacs-Sitzung mitzuteilen, dass eine Datei geöffnet werden soll. Wenn es bereits geöffnet ist, wird nur auf den vorhandenen Puffer umgeschaltet.quelle