Я использую TRAMP много с emacs. Однако иногда сервер идет вниз, и бродяга сидит в ожидании таймаута. Обычно после создания C-x-f
в ido-режиме открывается новый файл. Я должен ждать досадно долгое время. Есть ли простой способ сообщить TRAMP о тайм-ауте и продолжить идо-режим. Я пробовал C-g
, и возможность открыть файл никогда не будет.Как заставить тайм-аут Emacs?
ответ
Я не сталкиваюсь с такой ситуацией с таймаутом, хотя часто использую TRAMP. Попробуйте что-то вроде
(defun tramp-find-file-timeout()
(when tramp
(with-timeout (4)
(keyboard-quit))))
(add-hook 'find-file-hook 'tramp-find-file-timeout)
я использовал this и this, чтобы сделать это предложение. что-то лучше, чем keyboard-quit
может работать для вас.
О, похоже, это сработает, но по какой-то причине оно не срабатывает. Вот досада! – User1 2010-12-07 16:24:09
Я нашел один намек, который может ограничить болезненное ожидание до 5 секунд. Добавьте эту строку в .ssh/конфигурации:
Host * ServerAliveInterval 5
Однако через пять секунд, и вы все еще не можете выбрать файл. Таким образом, когда он выходит из строя, просто выполните C-x b
в буфер, который не открыт на сбитом сервере, а C-x-f
оттуда не будет навсегда.
В случаях (частых) случаях, когда бродячие лотки, я просто останавливаю процесс с помощью C-g
, убиваю буфер трамбов, и затем я могу сохранить файл.
M-x kill-buffer RET *tramp.*
ли `работает Cg` в этой ситуации может зависеть от вашей операционной системы (и на некоторые«экзотические»(то есть не-Unix), платформы, как Emacs был составлен, и, возможно, даже как SSH или другой помощник программа была скомпилирована). – Gilles 2010-12-07 22:17:15
Ах. Я использую emacs cygwin и scp cygwin. – User1 2010-12-07 22:51:00