如何让 Emacs TRAMP 从我的 ~/.ssh/config 提供补全?

如何让 Emacs TRAMP 从我的 ~/.ssh/config 提供补全?

当我想使用 TRAMP 在 Emacs 中通过 sftp 访问远程文件时,我希望 Emacs 能够根据我的 ssh 配置中的主机名提供补全。我该怎么做?

例如,如果我的 ssh 配置中有两个主机“alpha”和“bravo”,那么当我/sftp:a在 find-file 提示符下输入时,它应该完成“alpha”。

答案1

远程访问记录在流浪汉手册。您想要的是自定义完成. 把类似这样的内容放入你的~/.emacs

(setq my-tramp-ssh-completions
      '((tramp-parse-sconfig "~/.ssh/config")
        (tramp-parse-shosts "~/.ssh/known_hosts")))
(mapc (lambda (method)
        (tramp-set-completion-function method my-tramp-ssh-completions))
      '("fcp" "rsync" "scp" "scpc" "scpx" "sftp" "ssh"))

相关内容