Час від часу мені трапляється M-! some_command
просто виявити, що команда працює довше, ніж я очікувала, і зберігає мої emacs довгими секундами. Тому я глазурую свої заморожені емаки і б'ю себе за те, що не користуюся, M-& some_command
і обіцяю використовувати M-&
наступний раз. Але M-!
це в моїй м'язовій пам’яті десятиліттями… І звичайно, є Ctrl-G
, але випадки, коли порушувати команду і повторно запускати її не бажано (можливо, це може зламати що-небудь, можливо, дорого було б повторити…).
Подібна помилка в консолі оболонки є тривіальною для виправлення Ctrl-Z
, bg
і робота працює у фоновому режимі.
Чи є в emacs якийсь подібний трюк - спосіб перетворити команду, що працює на даний момент (синхронний), у фоновий (асинхронний)?
Зауважте: якщо це неможливо за замовчуванням M-!
, я відкритий для пропозицій, як перезавантажити M-!
щось інше (що було б функціонально еквівалентним, крім цього фокусу).
M-!
до async-shell-command
. :-) Здається, що єдине, що ви втрачаєте, - це отримання результату в області ехо, коли він досить короткий.
async-shell-command
робиться. Він додає &
до кінця COMMAND
рядка і виконує shell-command
.
&
до кінця звичайногоshell-command
(M-!
) зробить його асинхронним. Звичайно, ви повинні зробити це перед тим, як запустити команду, але принаймні ви можете скористатися тим самим прив'язкою клавіш.