Od czasu do czasu zdarza mi się po M-! some_commandprostu 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_commandi 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, bga 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.