有时我偶然会M-! some_command发现该命令的运行时间超出了我的预期,并使我的emacs冻结了很长时间。因此,我凝视着冰冻的emacs,踢自己不使用的东西,M-& some_command并保证自己M-&下次使用。但是M-!几十年来我一直在记忆中……当然还有Ctrl-G,但是在某些情况下,中断命令并重新运行它不是可取的(也许它可能会破坏某件事,也许重新运行会很昂贵……)。
Shell Konsole中的类似错误很容易纠正Ctrl-Z,bg并且作业在后台运行。
emacs中是否存在类似的技巧-一种将当前正在运行的前台(同步)命令转换为后台(异步)命令的方法?
注意:如果无法使用default M-!,我可以提出有关如何重新绑定M-!到其他内容的建议(除此技巧外,在功能上是等效的)。
您总是可以重新映射
—
glucas 2015年
M-!到async-shell-command。:-)似乎您唯一失去的就是在回音区域足够短时获得输出。
@nanny,事实上,就是
—
Matthew Piziak
async-shell-command这样。它&在COMMAND字符串的末尾添加一个并执行shell-command。
&在常规shell-command(M-!)的末尾添加an 将使其异步。当然,您必须在运行命令之前执行此操作,但是至少可以使用相同的键绑定。