Emacs: desativar a conclusão do Ido no modo Tramp
Costumo usar ido para conclusão automática e tramp para acessar o servidor remoto via ssh. Minhas.emacs
inclui as seguintes linhas:
(require 'tramp)
(setq tramp-default-method "ssh")
(ido-mode 1)
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
Desejo desativar a conclusão do Ido quando estiver navegando no conteúdo do servidor remoto. Observe que a variávelido-enable-tramp-completion
não tem nada a ver com o meu problema. Considere a linha/[email protected]#1234:/var/www/file.txt
. Eu preciso do Idonã para deduzir a parte após os dois pontos (caminho do arquivo remoto), não me importo com a parte antes dos dois pontos. Eu uso o ssh e o Ido faz o Emacs ficar lento por alguns segundos toda vez que corroido-find-file
, e quando o tempo limite do ssh terminar, o Tramp tenta se reconectar, pede uma senha e assim por diante. Esse comportamento é indesejáve
ersão @Emacs - 24.0.94.1
Edit (20.03.12): Após contato com o autor do Ido, tentei alterar oido-file-name-all-completions-1
para o seguinte:
(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))))
Sem sucesso. Alterei regex para
"\\`/[^/]+[:@]"
e funcionou - o Ido foi desativado quando o minibuffer continha essa correspondência. No entanto, como o Ido não conseguia ver os arquivos em um servidor remoto, ele começou a chamarido-make-merged-file-list
para procurar arquivos em outros diretórios toda vez que eu inserir algo. Isso tornou o trabalho com o Ido em servidores remotos ainda mais problemátic
Eu também tentei configurar variáveisido-slow-ftp-hosts
eido-slow-ftp-host-regexps
para/[email protected]#1234
, não ajudou.