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

Eri*_*yen 6 emacs tramp

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

Tramp非常适合实际编辑远程文件,就好像它们是本地文件一样 - 现在我希望能够以相同的方式启动整个emacs编辑器.

spa*_*bat 6

出于好奇,我刚才给了这个:

emacs -q --load "/ssh:USER@HOSTNAME:.emacs.d/init.el"
Run Code Online (Sandbox Code Playgroud)

这很有效,但是远程init.el正在设置像"〜/ .emacs.d/vendor /"这样的加载路径,所以真正的init文件需要知道它设置的路径和文件名需要相对于公共基础.此基数可以通过公共变量设置,因此请尝试:

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

然后在远程配置中,前置init-base到它应设置为远程的任何路径或文件名.


slu*_*slu 4

使用这些远程目录之一启动 emacs,就好像它是本地目录一样

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

> sshfs server1: ~/remote/server1 
> sshfs server2: ~/remote/server2
Run Code Online (Sandbox Code Playgroud)

然后你就可以启动 emacsemacs --no-init-file --load ~/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"))
Run Code Online (Sandbox Code Playgroud)

然后像这样启动 emacs:emacs --no-init-file --load ~/.emacs.server1.el

显然这个脚本依赖于上面的安装。