Emacs:отключает завершение Ido в режиме Tramp

Я часто использую ido для авто-дополнения и трамп для доступа к удаленному серверу через ssh. Мой .emacsвключает следующие строки:

(require 'tramp)
(setq tramp-default-method "ssh")
(ido-mode 1)
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)

Я хочу отключить завершение Ido, когда я просматриваю содержимое удаленного сервера. Обратите внимание, что переменная ido-enable-tramp-completionне имеет никакого отношения к моей проблеме. Рассмотрим строку /root@site.com#1234:/var/www/file.txt. Мне нужно, чтобы Ido , а не , вычитал часть после двоеточия (путь к удаленному файлу), меня не волнует часть до двоеточия. Я использую ssh, и Ido заставляет Emacs отставать на несколько секунд каждый раз, когда я запускаю ido-find-file, а когда время ожидания ssh истекает, Бродяга пытается переподключиться, запрашивает у меня пароль и так далее. Такое поведение нежелательно.

Версия Emacs -24.0.94.1

Изменить (20.03.12):После контакта с автором Ido я попытался изменить ido-file-name-all-completions-1на следующее:

(defun ido-file-name-all-completions-1 (dir)
  (cond
   ((ido-nonreadable-directory-p dir) '())
   ;; do not check (ido-directory-too-big-p dir) here.
   ;; Caller must have done that if necessary.

   ((and ido-enable-tramp-completion
     (or (fboundp 'tramp-completion-mode-p)
         (require 'tramp nil t))
     (string-match "\\`/[^/]+[:@]\\'" dir))
    ;; TRAMP RELATED CODE DELETED
    nil)
   (t
    (file-name-all-completions "" dir))))

Безуспешно. Затем я изменил регулярное выражение на

"\\`/[^/]+[:@]"

, и оно сработало -Идо было отключено, когда минибуфер содержал это совпадение. Однако, поскольку Ido не мог видеть файлы на удаленном сервере, он начал вызывать ido-make-merged-file-listдля поиска файлов в других каталогах каждый раз, когда я что-то вводил. Это сделало работу с Ido на удаленных серверах еще более болезненной.

Я также пытался установить переменные ido-slow-ftp-hostsи ido-slow-ftp-host-regexpsв /root@site.com#1234, не помогло.

9
задан Mirzhan Irkegulov 27 April 2012 в 04:24
поделиться