Od czasu do czasu zdarza mi się po M-! some_command
prostu stwierdzić, że polecenie działa dłużej niż się spodziewałem i utrzymuje moje emacsy zamrożone przez długie sekundy. Więc glazuruję na moich zamrożonych emacach i kopię się za to, że nie używam, M-& some_command
i obiecuję, że użyję M-&
następnym razem. Ale M-!
jest w mojej pamięci mięśni przez dziesięciolecia… Oczywiście, że tak Ctrl-G
, ale zdarzają się przypadki, w których złamanie polecenia i ponowne uruchomienie nie jest preferowane (być może może to zepsuć coś, być może ponowne uruchomienie byłoby kosztowne…).
Podobny błąd w konsoli konsoli jest prosty do naprawienia Ctrl-Z
, bg
a zadanie działa w tle.
Czy istnieje jakaś podobna sztuczka w emacsie - sposób na przekształcenie aktualnie uruchomionej komendy pierwszego planu (synchronicznej) w tło (asynchroniczną)?
Uwaga: w przypadku, gdy nie jest to możliwe domyślnie M-!
, jestem otwarty na sugestie, jak ponownie powiązać M-!
w coś innego (co byłoby funkcjonalnie równoważne oprócz tej sztuczki).
M-!
do async-shell-command
. :-) Wydaje się, że jedyną rzeczą, którą tracisz, jest uzyskanie sygnału wyjściowego w obszarze echa, gdy jest wystarczająco krótki.
async-shell-command
. Dodaje &
na końcu COMMAND
łańcucha i wykonuje shell-command
.
&
na końcu funkcji regularshell-command
(M-!
) spowoduje, że stanie się ona asynchroniczna. Oczywiście musisz to zrobić przed uruchomieniem polecenia, ale przynajmniej możesz użyć tego samego skrótu klawiszowego.