我正在设置 emacs服务器,以便 emacsclients 指定的文件 是相对于emacsclients的文件系统而不是服务器的文件系统。例如,如果我设置了一个 机器上的emacs服务器“darkstar”,我通过emacsclient连接到这个服务器 在“brightstar”上使用命令
emacsclient -nw '~/fantastic'
emacs服务器将尝试在darkstar上编辑文件〜/ fantastic,而不是on 明亮的星星。我喜欢这样的反面。我对各种各样的建议持开放态度。
*背景说明: 我想要一个emacs进程来跟踪我打开各种各样的缓冲区 机器,跟踪我的颜色设置,绑定等。我想要所有这些 使用emacs在任意机器上可用和复制。 emacs服务器 似乎这样做但没有编辑客户端本地文件的能力!
答案 0 :(得分:1)
远程计算机(运行Emacs的计算机)是否安装了本地计算机的文件系统?如果是这样,您可以发出类似的内容:
emacsclient --eval ´(my-open-file "~/fantastic" "my-local-machine")´
然后您可以编写函数my-open-file
,例如,可以打开文件//mounts/my-local-machine/home/YOUR-ACCOUNT/fantastic
(假设这是挂载点)。
这将需要一些elisp-hacking和一些脚本黑客(例如使用Ruby)来构建emacsclient命令行。
答案 1 :(得分:1)
你应该能够设置一个使用tramp的shell函数,比如
edit-local() {
emacsclient -e "(find-file (expand-file-name \"$1\" \"/ssh:$USER@$(hostname):$PWD\"))"
}
当然,您可能需要将tramp协议更改为您已设置的任何内容。