ときどきM-! some_command、コマンドが予想よりも長く実行され、emacsが長時間フリーズされたままになることがあります。だから、凍結したemacsをglみ、使用しないことで自分を蹴り、次回M-& some_command使用することを約束しますM-&。しかしM-!、何十年も私の筋肉の記憶にあります...そしてもちろんありますがCtrl-G、コマンドを中断して再実行することが好ましくない場合があります(おそらく、それはsthを中断する可能性があり、おそらくは再実行に費用がかかります...)。
シェルkonsoleでの同様の間違いは修正するのは簡単Ctrl-Zでbg、ジョブはバックグラウンドで実行されています。
emacsに同様のトリックがありますか?現在実行中のフォアグラウンド(同期)コマンドをバックグラウンド化(非同期)コマンドに変える方法はありますか?
注:default が不可能な場合M-!、私はM-!他の何かに再バインドする方法の提案を受け入れます(このトリック以外は機能的に同等です)。
M-!にasync-shell-command。:-)あなたが失うのは、エコー領域に十分に短いときに出力を取得することだけだと思われます。
async-shell-commandはそれだけです。文字列&の末尾にを追加してCOMMAND実行しshell-commandます。
&通常のshell-command(M-!)の末尾にを追加するだけで非同期になることを知りたい場合があります。もちろん、コマンドを実行する前にこれを行う必要がありますが、少なくとも同じキーバインディングを使用できます。