Windows VM内で実行されているDragon Naturally Speakingを使用して、OSXでemacsを駆動しようとしています。VM で emacs を実行するのではなく、Mac 側で既に実行されている (リポジトリの HEAD から構築された) emacs を駆動したいと考えています。そこで、emacs Lisp マニュアルを調べた結果、次の Lisp の断片を思いつきました (現在、作業中にスクラッチ バッファーから実行しています)。
;; This part is run from an emacsclient -t session
(defvar slave-frame last-event-frame)
;; and this is run in a GUI frame
(defadvice handle-switch-frame (after update-slave-redirect-advice activate)
(unless (eq last-event-frame slave-frame)
(redirect-frame-focus slave-frame last-event-frame)))
そして、すべて順調です。ターミナル ウィンドウに入力すると、バッファ A が表示されます。入力した内容は、バッファ B を忙しく表示している GUI フレームに表示されます。ミニバッファーを必要とする他のコマンドを実行するまでC-x C-f
、その時点でエラーが発生しますTerminal 1 is locked, cannot read from it
。
redirect-frame-focus
ここで間違ったツリーを吠えていますか、それともミニバッファーを使用するコマンドでうまく動作させる方法はありますか?