Можно ли запустить emacs, используя удаленный файл конфигурации? - PullRequest
6 голосов
/ 04 декабря 2010

У меня есть разные файлы конфигурации .emacs, относящиеся к работе, на серверах, где я работаю в разных компаниях.Это пакеты, которые по разным причинам я не хочу хранить локально на моей машине.Есть ли способ запустить emacs, используя один из этих удаленных каталогов, как если бы он был локальным?

Tramp отлично подходит для редактирования удаленных файлов, как если бы они были локальными - теперь я бы хотелзапустите весь редактор emacs таким же образом.

Ответы [ 3 ]

6 голосов
/ 25 октября 2012

Из любопытства я только что попробовал:

emacs -q --load "/ssh:USER@HOSTNAME:.emacs.d/init.el"

Это сработало, однако удаленный init.el устанавливает пути загрузки вроде "~ / .emacs.d / vendor /", так что на самом делеФайл инициализации должен знать, что пути и имена файлов, которые он устанавливает, должны быть относительно общей базы.Эта база может быть установлена ​​с помощью общей переменной, поэтому попробуйте:

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

Затем в удаленной конфигурации добавьте init-base к любому пути или имени файла, которые он устанавливает, которые должны быть удаленными.

3 голосов
/ 04 декабря 2010

запустить emacs, используя один из этих удаленных каталогов, как если бы он был локальным

Если серверы являются серверами Unix / Linux и у вас есть доступ по ssh, то вы можете попробовать Файловая система SSH .Затем вы можете подключить серверы к локальным каталогам, например:

> sshfs server1: ~/remote/server1 
> sshfs server2: ~/remote/server2

Затем вы можете запустить emacs с emacs --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"))

И затем запустите emacs следующим образом: emacs --no-init-file --load ~/.emacs.server1.el

Очевидно, что этот скрипт зависит от приведенных выше монтировок.

2 голосов
/ 04 декабря 2010

Вы можете найти вопрос SO Начать редактирование удаленного файла с помощью emacs tramp из сеанса ssh запрашивает решение связанной проблемы. Возможно, ответы там могут дать вам то, что вы хотите, а именно, вы можете подключиться к emacs, работающему на удаленной машине.

...