Von Zeit zu Zeit stelle ich fest, M-! some_command
dass der Befehl länger ausgeführt wird als erwartet und meine Emacs für lange Sekunden eingefroren sind. Also glasiere ich meinen gefrorenen Emac und trete mich dafür, dass ich ihn nicht benutzt habe M-& some_command
und verspreche mir, ihn das M-&
nächste Mal zu benutzen . Aber es M-!
ist seit Jahrzehnten in meinem Muskelgedächtnis… Und natürlich gibt es Ctrl-G
, aber es gibt Fälle, in denen ein Abbruch des Befehls und ein erneutes Ausführen nicht vorzuziehen sind (möglicherweise kann es etw zerbrechen, möglicherweise wäre es kostspielig, es erneut auszuführen…).
Ein ähnlicher Fehler in der Shell-Konsole ist trivial zu korrigieren Ctrl-Z
, bg
und der Job wird im Hintergrund ausgeführt.
Gibt es einen ähnlichen Trick in Emacs - eine Möglichkeit, den aktuell ausgeführten Vordergrundbefehl (synchron) in einen Hintergrundbefehl (asynchron) umzuwandeln?
Hinweis: Für den Fall, dass es standardmäßig nicht möglich ist M-!
, bin ich offen für Vorschläge, wie Sie M-!
sich an etwas anderes binden können (was ohne diesen Trick funktionell äquivalent wäre).
M-!
zu async-shell-command
. :-) Das Einzige, was Sie verlieren, ist die Ausgabe im Echo-Bereich, wenn es kurz genug ist.
async-shell-command
. Es fügt &
am Ende der COMMAND
Zeichenfolge ein hinzu und wird ausgeführt shell-command
.
&
an das Ende eines regularshell-command
(M-!
) asynchron macht. Natürlich müssen Sie dies tun, bevor Sie einen Befehl ausführen, aber Sie können zumindest die gleiche Tastenkombination verwenden.