这个问题也属于月经贴了,论坛里过往很多:https://emacs-china.org/search?q=emacs%20远程%20编辑
你说的 server/client 模式,其实是间接的 tramp。所以两种方案应该是:
- ssh 登录远程,运行远程电脑上的 emacs
- tramp 2.1 直接 tramp 打开远程文件 2.2 在本地启动 emacs-server,然后远程运行 emacs-client, 穿透回来
无意说哪一种方案更好,如果让我决定,我会考虑:
-
如果编辑少量并且是小文件,例如配置文件,或者明确知道要修改什么,一锤子买卖这种,就直接 tramp。 至于远程 emacs-client,并没有实质不同,而且配置略麻烦一些。
-
如果是一个完整的工程,长期编辑,必须在远程配置 emacs 了,因为 tramp 只会把你编辑过的文件传到本地,这些文件是孤立的,想要自动补全、静态分析…这些就很困难了。
速度方面:
- tramp 比较慢,因为哪怕你该懂一个字符,也需要同步整个文件(所以大文件慎用 tramp),但是有个好处,你可以很方便拷贝整个 buffer 的内容,有些人比较需要这个;
- 运行远程 emacs 速度无疑快很多,因为它只传输屏幕内容到你本地,相应的,要拷贝整个 buffer 就不容易了。