如何从终端控制emacs?

如何从终端控制emacs?,emacs,elisp,Emacs,Elisp,我正试图在OSX上使用运行在Windows虚拟机中的Dragon来驱动emacs。我不想在VM中运行emacs,而是想驱动已经在mac端运行的emacs(从存储库的头部构建)。因此,在浏览了emacs lisp手册之后,我找到了以下lisp片段(目前在我工作时从临时缓冲区运行): 一切都很好。我在终端窗口中输入,显示缓冲区A,我的输入显示在GUI框架中,正在播放缓冲区B。太好了。除非我执行C-x C-f或任何其他需要微型缓冲区的命令,此时我得到错误终端1被锁定,否则无法从中读取 我在这里找错了方

我正试图在OSX上使用运行在Windows虚拟机中的Dragon来驱动emacs。我不想在VM中运行emacs,而是想驱动已经在mac端运行的emacs(从存储库的头部构建)。因此,在浏览了emacs lisp手册之后,我找到了以下lisp片段(目前在我工作时从临时缓冲区运行):

一切都很好。我在终端窗口中输入,显示缓冲区A,我的输入显示在GUI框架中,正在播放缓冲区B。太好了。除非我执行
C-x C-f
或任何其他需要微型缓冲区的命令,此时我得到错误
终端1被锁定,否则无法从中读取

我在这里找错了方向,或者有没有办法使
重定向帧焦点
与使用minibuffer的命令很好地配合使用?

Piers


您想要什么行为,重定向到(Windows)客户端上的小型缓冲区还是服务器上的小型缓冲区?另外,您使用的是什么版本/风格的emacs?

如何使用
TRAMP
并通过共享编辑文件?TRAMP是许多问题的答案;我广泛使用它。我很确定这不是这个问题的答案。我想在windows上花费更少的时间,而不是更多。这里的主机是什么,客户端是什么?
emacs--server
运行在主机操作系统(本例中为OSX)上,然后,在windows虚拟机中,我ssh到主机并运行
emacsclient-t
我希望emacs相信在Windows端键入的所有内容实际上都是在服务器端键入的。我不想求助于ascii2x。
;; 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)))