私は一般的にxemacsとLinuxに慣れていないので、私を初心者と考えてください。そして、elispがコマンドまたはコマンドを即座に実行しない理由があるかどうか疑問に思っていました。
init.el に次のコードがあります。
(defun myClear ()
"Clears console output buffer (F5)"
(erase-buffer "*Shell Command Output*"))
(defun myMake ()
"Executes make (F6)"
(shell-command "make"))
(defun myClearMake ()
"Clears console output buffer before executing make (F7)"
(erase-buffer "*Shell Command Output*")
(shell-command "make"))
これらはキー F5 ~ F7 にバインドされています。F7 を押しても、最初に F5 を押してから F6 を押した場合と同じ結果にはなりません。これは期待どおりに機能します。
代わりに、(erase-buffer ...) ステートメントがスキップされたように見えるか、(shell-command ...) の直前に実行された可能性があります。とにかくシェルコマンドはシェル出力をダンプする前にバッファを消去するため、わかりにくいです。
私が期待したこと: コンソール出力がクリアされます。これは、make がまだ実行されていて、まだ出力が生成されていない間 (私の場合は数秒) に表示されるはずです。
これをさらにテストする方法がわかりません。一般的なタスクのように見えますが、適切なものや類似のものを見つけることができませんでした。また、言及された動作を取得することに興味があるだけでなく、自分が何を間違えたかを理解することにも興味があることを考慮してください。
この動作を説明する elisp の仕組みに関するリンク/ポインタは大歓迎です。ありがとう、タッシェ