有时我偶然会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 将使其异步。当然,您必须在运行命令之前执行此操作,但是至少可以使用相同的键绑定。