Emacs: Tramp не работает

Я попытался открыть удаленный файл через Emacs через Tramp.

(require 'tramp)
(setq tramp-default-method "ssh")

Получаю сообщение от Emacs

Tramp: ожидание запросов из удаленной оболочки

Emacs висел и не реагировал на какие-либо действия после этого

Emacs был установлен в Windows; удаленный файл находился на машине Linux.

Ответ 1

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

Войдите в систему под учетной записью root, затем введите

PS1="> "

(что обычная, стандартная оболочка (ZSH, BASH, younameit) подсказка, которую поймет бродяга) затем переключитесь на учетную запись пользователя и запустите emacs -q (чтобы убедиться, что ваш .emacs не вызывает этого беспорядка) и попробуйте C-x C-f /sudo:[email protected]:/etc/hosts и посмотрите, что.

Вы можете (не рекомендуется) также настраивать регулярное выражение, которое определяет, что ожидают бродяги:

M-x customize-variable RET tramp-terminal-prompt-regexp

Мой подход:

  • Убедитесь, что для переменной tramp-terminal-type установлено значение "dumb"

M-x customize-variable RET tramp-terminal-type

  1. Проверьте, что в вашем. * shrc и выполните правильное приглашение:
case "$TERM" in
"dumb")
    PS1="> "
    ;;
xterm*|rxvt*|eterm*|screen*)
    PS1="my fancy multi-line \n prompt > "
    ;;
*)
    PS1="> "
    ;;
esac

Ответ 2

Ваш клиент ssh для Windows является ключевым здесь, и метод ssh 'Tramp почти наверняка неправилен.

Если вы используете Cygwin, вам нужно использовать метод sshx, и вам, вероятно, нужно будет использовать ssh-agent для проверки подлинности. Подробности здесь: Возможно использование tramp с EmacsW32 и cygwin?

Я предполагаю, что то же самое относится к любому автономному ssh-клиенту, который не требует полной установки Cygwin, но использует библиотеки Cygwin DLL. (Я упоминаю об этом, потому что я уверен, что я помню, что видел такое.)

Если вы используете PuTTY, вам нужен метод "plink", как указал Алекс Отт. Если Wiki не хватает, search здесь, вероятно, появятся решения для настройки этого подхода.

Другие альтернативы, которые я могу предложить, следующие:

  • Используйте Cygwin-родной Emacs. Это будет медленнее, чем NTEmacs, но Tramp, похоже, хорошо работает с методом ssh, а также работает с паролями.

  • Устанавливайте виртуальную машину Linux в вашем окне Windows и запускайте Emacs. Это довольно большой обруч, чтобы перейти, но он мой предпочтительный способ использования Tramp при работе в Windows.

Ответ 3

Вы проверили Emacs wiki для решения? ssh находится в PATH? Также рекомендуется использовать plink в MS Windows - см. Раздел "Встроенные методы" в документации Tramp

Ответ 4

Кстати, если вам нужно tramp до sudo - вы можете sudo без tramp использовать sudoedit.

В настоящее время я использую эту функцию bash:

erf () { SUDO_EDITOR="emacsclient -a emacs" sudoedit [email protected]; }