Il m'arrive de temps en temps M-! some_command
de constater que la commande s'exécute plus longtemps que prévu et garde mes emacs figés pendant de longues secondes. Je glaçe donc mes emacs congelés et me donne un coup de pied pour ne pas utiliser M-& some_command
et me promets d'utiliser la M-&
prochaine fois. Mais M-!
est dans ma mémoire musculaire depuis des décennies… Et bien sûr qu'il y en a Ctrl-G
, mais il y a des cas où rompre la commande et le relancer n'est pas préférable (peut-être qu'il peut casser qch, peut être coûteux à réexécuter…).
Une erreur similaire dans shell konsole est triviale à corriger Ctrl-Z
, bg
et le travail s'exécute en arrière-plan.
Existe-t-il une astuce similaire dans emacs - un moyen de transformer la commande de premier plan (synchrone) en cours d'exécution en une commande en arrière-plan (asynchrone)?
Remarque: dans le cas où il est impossible par défaut M-!
, je suis ouvert à des suggestions sur la façon de se lier M-!
à autre chose (ce qui serait fonctionnellement équivalent en dehors de cette astuce).
M-!
à async-shell-command
. :-) On dirait que la seule chose que vous perdez est d'obtenir la sortie dans la zone d'écho lorsqu'elle est suffisamment courte.
async-shell-command
. Il ajoute un &
à la fin de la COMMAND
chaîne et s'exécute shell-command
.
&
à la fin d'un regularshell-command
(M-!
) le rendra asynchrone. Bien sûr, vous devez le faire avant d'exécuter une commande, mais au moins vous pouvez utiliser le même raccourci clavier.