Поиск и устранение неисправностей соединения Emacs Tramp, которое использовалось для работы - пароль или оболочка Regexp Не так? - PullRequest
3 голосов
/ 08 марта 2012

Я пытаюсь выяснить, почему работающее ранее соединение emacs + tramp не работает. Сначала я подумал, что это может быть проблема с Aquamacs, но я загрузил Emacs.app на OSX, основанный на версии 23.3 (9.0), и он тоже не работает. Удаленный хост запускает FreeBSD 7.4 и пользовательская оболочка по умолчанию /usr/local/bin/bash.

Если я пытаюсь открыть файл, такой как:

Find file: /username@remote_host:~/folder/

... курсор в минибуфере останавливается на:

Find file: /username@remote_host

... и я больше ничего не могу напечатать. Смущая это, я тоже не могу остановить это. Emacs просто зависает. Время истекает через минуту или около того, но до тех пор не может быть использовано.

Соответствующие строки моего файла .emacs:

(require 'tramp)
(setq tramp-debug-buffer t)
(setq tramp-verbose 9)
(setq tramp-default-method "ssh")
(setq tramp-password-prompt-regexp ".*[Pp]assword: *$")
(setq tramp-shell-prompt-pattern "^[^;$#>]*[;$#>] *")
(setq password-cache-expiry nil)

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

Password:

[username@remote_host ~]$   # with a single space at the end

Значение tramp-password-prompt-regexp равно ".*[Pp]assword: *$"

Значение tramp-shell-prompt-pattern равно "^[^;$#>]*[;$#>] *"

И, наконец, последние несколько строк буфера отладки:

14:36:40.271851 tramp-get-connection-property (7) # check-remote-echo nil
14:36:41.090876 tramp-wait-for-regexp (6) # 
are you awake
#$ 
14:36:41.091037 tramp-wait-for-regexp (1) # File error: [[Regexp `\(^\|\)[^#$
?$' not found in 60 secs]]

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

Есть идеи, что я могу делать не так?

Добавление

Использование GNU Emacs 22.1.1 (mac-apple-darwin, Carbon Version 1.6.0), версия Tramp 2.0.55, работает. Однако я неохотно полагаюсь на это, поскольку оно основано на окне терминала, и я перетасовал Cmd, Ctrl и Caps Lock, чтобы заставить мою рабочую станцию ​​больше походить на мою домашнюю машину, затем сказал Emacs обработать Cmd клавиша в качестве альтернативы Ctrl; к сожалению, окно терминала перехватывает несколько комбинаций клавиш Cmd.

Более

Загрузил Emacs-22.3-i386-10.5.7.dmg из Emacs Для OS X , который использует tramp 2.0.58-pre. Это тоже работает и имеет меньше проблем с комбинациями клавиш для захвата среды. Но я до сих пор не понимаю, почему Aquamacs и более поздние версии Carbon Emacs перестали работать.

...