是否可以使用远程配置文件启动emacs?

是否可以使用远程配置文件启动emacs?,emacs,tramp,Emacs,Tramp,我在为不同公司工作的服务器上有不同的特定于工作的.emacs配置文件。由于各种原因,我不想在我的机器上本地存储这些包。有没有办法像启动本地目录一样使用其中一个远程目录来启动emacs Tramp非常适合于像本地文件一样编辑远程文件——现在我希望能够以同样的方式启动整个emacs编辑器 使用其中一个远程目录启动emacs,就像它是本地目录一样 如果服务器是unix/linux服务器,并且您具有ssh访问权限,那么您可以尝试。然后,您可以将服务器装载到本地目录,例如: > sshfs serv

我在为不同公司工作的服务器上有不同的特定于工作的.emacs配置文件。由于各种原因,我不想在我的机器上本地存储这些包。有没有办法像启动本地目录一样使用其中一个远程目录来启动emacs

Tramp非常适合于像本地文件一样编辑远程文件——现在我希望能够以同样的方式启动整个emacs编辑器

使用其中一个远程目录启动emacs,就像它是本地目录一样

如果服务器是unix/linux服务器,并且您具有ssh访问权限,那么您可以尝试。然后,您可以将服务器装载到本地目录,例如:

> sshfs server1: ~/remote/server1 
> sshfs server2: ~/remote/server2
然后您可以使用
emacs启动emacs——无初始文件——加载~/remote/servers2/.emacs
等等

由于各种原因,我不想在本地存储的包

如果在远程计算机上的.emacs.d中安装了软件包,则可以在本地计算机上创建如下脚本:

;; .emacs.server1.el
(add-to-list 'load-path (expand-file-name "~/remote/server1/.emacs.d"))
(add-to-list 'load-path (expand-file-name "~/remote/server1/.emacs.d/package1"))
(load (expand-file-name "~/remote/server1/.emacs"))
然后像这样启动emacs:
emacs--no init file--load~/.emacs.server1.el


显然,此脚本取决于上面的挂载。

您可能会发现,问题在于要求解决相关问题。也许那里的答案会给你你想要的,也就是说,你可以连接到远程机器上运行的emacs。

出于好奇,我刚刚尝试了一下:

emacs -q --load "/ssh:USER@HOSTNAME:.emacs.d/init.el"
这是可行的,但是远程init.el正在设置加载路径,如“~/.emacs.d/vendor/”,因此init文件实际上需要知道它设置的路径和文件名需要与公共基相对。此基数可以由公共变量设置,因此请尝试:

emacs -q --eval '(setq init-base "/ssh:USER@HOSTNAME:") (load (concat init-base ".emacs.d/init.el"))'

然后在远程配置中,将
init base
前置到它设置的任何应该是远程的路径或文件名。

您可以扩展这种方法,只需使用sshfs在本地计算机上的.emacs.d处装载相应的remote.emacs.d目录,例如,sshfs server1:.emacs.d~/.emacs.d——这样就不需要传递上面提到的参数slu。要使用本地init文件,请从~/.emacs.d卸载任何sshfs文件系统,并执行ln-s~/.emacs.d.local~/.emacs.d。最后,通过使用.emacs.d/init.el而不是~/.emacs,您还可以拥有特定于机器的init文件。同样相关的还有: