emacs的server模式如果跨主机, 会怎么样?

emacs目前的server的socket是unix本地套接字, 我们可以做一个tcp服务的代理, 把两台主机上的两个unix本地套接字连接起来, 然后让emacsclient和emacs跨主机通信, 这样是什么效果?

1 个赞

不用代理,emacs自己就可以做到。

在ServerA上运行emacs并且设置(setq server-use-tcp t server-host “IPv4”)再server-start, 把~/.emacs.d/server/server文件copy到机器B 目录/tmp/;

在机器B上emacsclient -t -f /tmp/server即可.

不过效果跟emacs-tui或者x forward的结果基本一样.

具体细节可以查看emacs info “39.1 TCP Emacs server”.

Windows emacsclient 连接linux emacs-server ? https://lists.gnu.org/archive/html/help-gnu-emacs/2010-12/msg03004.html

1 个赞

emacs客户端是不是只能运行在命令行窗口? 客户端无法用GUI?

远程emacsclient运行起来之后, frame显示在哪里? 在本地, 还是远程? 还是可以控制让它显示在哪里?

没记错的话, 远程执行 emacsclient 之后, 远程机器什么都没有, frame 还是显示在 server 端的. 并不是远程 ui + 本地 headless server 这种感觉. 这个设计实在是有点诡异, 不太理解 dev 是怎么设想的.

如果那样的话, 好像没什么实际意义. 看了下, 有个-t参数, 是客户端本地创建一个终端来显示的, 跨主机不知道行不行. 还有一个-c是创建一个图形frame来显示, 这个肯定没法跨主机.

设计确实挺诡异, 用了这么多年都没搞明白这个功能. 最理想和简单的方式是跟tmux一样, 多爽.