linux - 从 Linux 通过 SSH 连接到 Mac OS X(使用 XForwarding)时如何运行 Emacs?

标签 linux macos emacs ssh

在工作中,我可以选择使用两台笔记本电脑,Windows 或 Mac。作为一个 Linux 用户,我认为 MacBook Pro 会很合适。

所以我将 MacBook Pro 笔记本电脑带回家,发现它没有右 ctrl 键。底部面板很烦人。所以我说,没问题,我稍后会解决所有问题,现在我将把它用作服务器并从我的脆皮 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,就别管它了。

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

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

我已经无计可施了。知道为什么其他 X 应用程序可以工作吗? Emacs 有什么特别之处吗?

最佳答案

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

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

关于linux - 从 Linux 通过 SSH 连接到 Mac OS X(使用 XForwarding)时如何运行 Emacs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22735651/

相关文章:

linux - 在 Gnome (linux) 中突出显示文本时如何禁用自动复制到剪贴板?

c - 以编程方式访问shell扩展,替换和单词拆分

.net - 'service ... start' 指令对于 .NET Core 应用程序到底意味着什么?

php - wget 从自定义网站下载由 PHP 加载的所有图像

python - 使用 py2app 编译 64 位 Mac 应用程序

macos - Safari 忽略 mime 类型

python - 推荐给程序员的操作系统是什么?

emacs - 定义一个调用另一个emacs命令的emacs命令(保留交互式内容)

emacs - 学习 Emacs 的资源

events - 如何以编程方式生成鼠标事件?