Может ли сервер Emacs редактировать удаленные файлы, указанные клиентом Emacs? - PullRequest
4 голосов
/ 26 января 2012

Я хочу настроить сервер emacs так, чтобы файлы, указанные в emacsclients , относились к файловой системе emacsclients, а не к файловой системе сервера.Например, если я настрою сервер emacs на машине «darkstar» и подключусь к этому серверу через emacsclient на «brightstar» с помощью команды

emacsclient -nw '~/fantastic'

Сервер emacs попытается отредактировать файл~ / фантастика на darkstar, а не на brightstar.Я бы хотел наоборот.Я открыт для всевозможных предложений zany.

* Справочная информация: я хочу процесс emacs, который отслеживает все буферы, которые я открываю на разных машинах, отслеживает мои настройки цвета, привязки и т. Д. Я хочувсе это доступно и реплицируется на любой произвольной машине с emacs.Сервер emacs, похоже, делает это, но без возможности редактировать локальные файлы клиента!

Ответы [ 2 ]

1 голос
/ 27 января 2012

Вы должны быть в состоянии установить функцию оболочки, которая использует tramp, как

edit-local() {
    emacsclient -e "(find-file (expand-file-name \"$1\" \"/ssh:$USER@$(hostname):$PWD\"))"
}

Конечно, вам, возможно, придется изменить протокол бродяги на тот, который вы настроили.

1 голос
/ 26 января 2012

Смонтировала ли удаленная машина (на которой работает Emacs) файловую систему локальной машины?Если это так, вы можете выдать что-то вроде:

 emacsclient --eval ´(my-open-file "~/fantastic" "my-local-machine")´

Затем вы можете написать функцию my-open-file, которая может, например, открыть файл //mounts/my-local-machine/home/YOUR-ACCOUNT/fantastic (при условии, что это точка монтирования).*

Для создания командной строки emacsclient потребуются некоторые взломы elisp и некоторые взломы скриптов (с использованием, например, Ruby).

...