如何在“ssh -X”中运行Emacs从Linux到Mac OS X(使用XForwarding)?

时间:2014-03-29 19:14:04

标签: linux macos emacs ssh

在工作中,我可以选择使用两台笔记本电脑,Windows或Mac。作为一个Linux家伙,我认为MacBook Pro将是一个不错的选择。

所以我将MacBook Pro笔记本电脑带回家,并意识到它没有右键控制键。底部面板很烦人。所以我说,没问题,我将在以后对所有这些进行排序,现在我将它用作服务器并从我脆弱的Xfce工作站环境远程ssh到它。嗯......

我花了大约一天试图找出答案:

如何从我的Fedora工作站ssh到mac,运行emacs并在我的linux工作站上显示(XForwarded)?你知道这样:

enter image description here

我已安装XQuartz并将/etc/sshd_config/private/etc/sshd_config更改为:

X11Forwarding yes
XAuthLocation /opt/X11/bin/xauth

请注意,xeyes是有效的,xclock也是如此,是啊!

enter image description here enter image description here

显然X转发工作正常,因为其他gui应用程序正在远程显示。但至于Emacs,foggetaboutit。

来自/usr/bin/emacs的默认Emacs只是以-nw模式运行它。然后我安装了the latest Emacs 24.3(进入/Applications/Emacs.app/Contents/MacOS/Emacs)。这一次,如果我实际登录笔记本电脑(即从笔记本电脑键盘),从ssh运行Emacs就出现在笔记本电脑的屏幕上! WTF?如果我退出笔记本电脑,那么我得到:

_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.

我的智慧结束了。为什么其他X应用程序有效?有关Emacs的特别之处吗?

2 个答案:

答案 0 :(得分:2)

构建Emacs.app二进制文件是为了使用Mac OS X的窗口系统(我们称之为“ns”),这与X11无关,因此您无法通过网络将其转发到另一个主办。相反,你想在你的Mac上安装另一个Emacs,它是为了使用X11窗口系统而构建的(所以你可以通过Xquartz本地使用它(让X11客户端使用原生Mac OS X显示器),或者你可以远程使用它像任何其他X11客户端一样。)

最简单的方法可能是自己构建它:获取emacs-24.3.tar.gz源代码并使用./configure --with-x; make进行编译。

答案 1 :(得分:0)

使用Mac端口必须选择x11或gtk变体,如下所示:

sudo port install emacs +x11

或那:

sudo port install emacs +gtk