Как SSH на удаленный сервер и использовать локальные Emacs для редактирования файлов?

8

Есть ли способ использовать emacs, установленный на моем локальном компьютере, для доступа к удаленным файлам, которые есть на удаленном сервере? Я гуглил и обнаружил, что должен использовать TrampMode, однако мне необходимо знать точный путь к файлу. Разве я не могу открыть ssh-соединение с удаленным сервером и оттуда открыть файлы с локальными emacs на моем компьютере?

starcorn
источник

Ответы:

5

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

«Различные способы сделать это» можно разделить на две категории. Сначала будут способы монтирования удаленного диска локально через что-то вроде sshfs, некоторой файловой системы fuse, samba, nfs или любого количества других систем монтирования, чтобы обеспечить доступ на уровне файлов к вашей машине. Во-вторых, это различные программы, которые позволяют вам входить в систему и просматривать удаленную систему, а затем работать с файлами, передавая их копию в локальный временный файл, редактируя его, а затем возвращая обратно. Несколько программ делают этот процесс довольно гладким, но это взлом.

Калеб
источник
1
«Несколько программ делают этот процесс довольно гладким, но это хакерство». Это и есть Tramp (который поставляется с Emacs в настоящее время). Это не хак, это естественный способ работы с удаленными файлами.
Жиль "ТАК - перестань быть злым"
@ Жиль: я ничего не знаю Tramp, так что мое «хакерское» утверждение не должно применяться. Я особенно думал о различных программах управления файлами, которые имеют пункты меню, такие как «открыть в редакторе». Несмотря на то, что они работают, чтобы открыть файл, они, как правило, хрупки в том смысле, что требуют, чтобы файл копировался, изменялся, копировался и т. Д. Промежуточный файл, сохраняемый до закрытия редактора, часто не выталкивается вверх по течению, что делает их неудобным способом работы. на файлы. Если вы знаете способ обойти ограничения в Tramp@starcorn, на которые жаловались, добавьте еще один ответ!
Калеб
1
С Tramp редактор выполняет всю работу, поэтому он знает, что нужно нажать при сохранении и так далее. Идеальным решением было бы совместить emacsserver и ssh, но это сложно. Два обходных пути, которые я бы предложил, это sshfs и eshell, оба уже упоминались.
Жиль "ТАК - перестань быть злым"
2

Или вы можете открыть emacs, запустить eshell, а затем cd на удаленную машину, например:

cd /hostname:~

Теперь запустите команды оболочки, перейдите к нужному файлу и откройте его:

find-file filename
Минаев
источник
2

Я думаю, что Бродяга - это то, что вы ищете. Вы можете использовать режим Dired, чтобы просматривать удаленные каталоги и искать нужный файл.

Например, если я ищу какой-нибудь файл /etc/на удаленной машине rem, я бы сделал следующее:

  • Открытые Emacs
  • ударил C-x C-f
  • удалить уже существующий путь
  • введите /rem:/etc/и нажмите ввод.

Вы получите такой вывод:

/ssh:rem:/etc:
total 1460
drwxr-xr-x 141 root root    12288 Aug 12 06:46 .
drwxr-xr-x  23 root root     4096 Jul 18 23:48 ..
drwx------   6 root root     4096 Nov 17  2009 .bzr
-rw-------   1 root root      749 Jul 18 23:30 .bzrignore
-rwx------   1 root root    10015 Aug 12 09:17 .etckeeper
drwxr-xr-x   3 root root     4096 Aug  6 00:47 .java
-rw-------   1 root root        0 Nov 17  2009 .pwd.lock

Затем вы можете использовать, например, клавиши со стрелками, чтобы найти файл, который вы хотите редактировать. Нажмите Enter, когда курсор находится на файле, чтобы отредактировать его.

ph0t0nix
источник