Подтвердить что ты не робот

Каков наилучший способ открыть удаленные файлы с emacs и ssh

Я подключаюсь к удаленному компьютеру с помощью ssh [email protected]. Когда мне нужно открыть файл на удаленной машине, например,

emacs /usr/share/nginx/html/index.html

и открывает файл index.html в оболочке. Я заметил, что некоторые команды emacs работают, но другие не работают. Например, C-w не работает; M-< не работает. Как я могу это исправить, и как лучше всего работать с emacs и ssh?

Я нашел этот вопрос, но это еще больше смутило меня.

4b9b3361

Ответ 1

Обычно я предпочитаю открывать удаленные файлы из локального экземпляра Emacs.

При запуске Emacs на локальном компьютере открытие удаленного файла по ssh не сильно отличается от открытия любого другого файла, кроме небольшого синтаксиса.

Для ssh вы можете ввести C-x C-f. Теперь в минибуфере вы хотите набрать /ssh:[email protected]:/path/to/file (обратите внимание, что выполнение вкладок будет работать после того, как вы начнете вводить путь. Также обратите внимание на символ /). Подробнее см. Здесь .

В вашем примере это будет:

C-x C-f /ssh:[email protected]:/usr/share/nginx/html/index.html

Теперь вы можете редактировать удаленные файлы поверх ssh в Emacs при использовании локальной конфигурации и любых установленных пакетов и т.д.

Ответ 2

Чтобы добавить ответ выше, вы можете писать ярлыки для машин, которые вы используете часто:

(defun connect-remote ()
  (interactive)
  (dired "/[email protected]:/"))

Это откроет буфер dired на удаленном компьютере. Вы можете перемещаться по этому буфере как и локальный.

Если вы установили ключи ssh для удаленной машины, вам даже не нужно вводить пароль.

Если у вас есть куча удаленных компьютеров, вы можете дать некоторое узнаваемое имя к каждой функции, например. connect-cupcake, connect-kitkat и используйте пакет smex для завершения.

Ответ 3

И добавить к сообщению @abo-abo о "ярлыках" -

Использовать закладки Emacs. Просто создавайте закладки обычно, когда вы посещаете удаленный файл или каталог. Затем просто используйте C-x r b для перехода к удаленной закладке, имя которой вы предоставляете (с завершением).

Если вы используете Закладка +, то удаленные закладки выделяются специально в *Bookmark List*, поэтому вы можете их распознать легче. И удаленные закладки, к которым необходимо обращаться su или sudo (root), выделяются по-разному.

Если вы используете Dired +, вы также можете быстро пометить несколько удаленных файлов или каталогов, посетив их содержащие удаленные каталог в Dired, отметьте их и нажмите C-x b. Не нужно указывать названия закладок; они названы в честь файлов. Даже если вы никогда не используете эти закладки для навигации к удаленным файлам, вы можете использовать их с Закладка + теги, чтобы организовать файлы и, таким образом, работать с их подмножествами.

Если вы используете Icicles, то всякий раз, когда вы используете команду для перехода к закладке, вы можете сузить завершение кандидаты на те, которые удалены, нажав [email protected] во время завершения.

Ответ 4

Оригинальный плакат выразил заинтересованность в открытии удаленных файлов в качестве пользователя root. Это можно сделать с помощью команды:

C-x C-f /ssh:[email protected]|sudo:remotehost:/path/to/file RET

Дополнительную документацию можно найти здесь: https://www.emacswiki.org/emacs/TrampMode#toc14

Ответ 5

Простой ответ, который фокусируется на удаленной машине:

Если я планирую, чтобы все мои emacs работали на удаленной машине, я использую

ssh -X [email protected]

а затем запустите emacs в удаленном сеансе, отобразив обратно на моем локальном компьютере. Это старый вопрос, но я хотел бросить это для полноты. Конечно, есть некоторые проблемы с конфигурацией xhost/X, но во многих сетях это будет работать с самого начала!

Ответ 6

Режим SSH для emacs - это то, что вы ищете.

Как только вы его настроите, вы просто запустите

M-x ssh RET hostname RET

Затем он дважды запрашивает ваш пароль (один раз для командной строки, один раз для загрузки файлов).

По большей части вы можете рассматривать его как любую другую оболочку (неинтерактивную и несколько незначительных различий, но это она).

Он отслеживает, в каком каталоге вы находитесь, поэтому, когда вы хотите открыть файл из каталога, на который вы смотрите, он автоматически запускается в правильном каталоге, и вам просто нужно ввести имя файла.

Emacs Wiki содержит больше информации.