Antworten:
Nein. Vim (oder jede andere Anwendung in dieser Angelegenheit) kann nicht mitteilen, dass stattdessen eine andere Aktion ausgeführt werden soll.
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 .
:e <file>
.
vim $1
mit nano $1
oder passwordmanagerpro $1
usw. ersetzen
Eine Beispiellösung funktioniert unter bash (erfordert paste, grep, sed). Es ist spezifisch für Vim, kann aber an einen anderen Editor angepasst werden.
jim () {
paste <(jobs) <(jobs -p | xargs -n1 ps o cmd= -p) |
grep "$1$" > ~/tmp/jm && fg $(cat ~/tmp/jm | sed -r 's/^\[([0-9]+).*/\1/')
[[ $? == 1 ]] && vim $1
}
Genießen!
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ühren M-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öchten emacs 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.
screen
virtuelle Terminals zu verwenden oder zu wechseln.