Tramp ssh hosts completion reddit / emacs ---------------------------------------------------------------------- AsterOps · 2022-04-06 10:54 Hi, I am using custom structure of `~/.ssh/config` which contains only these lines: Include conf.d/* and keep seperate file for each "site" tree ~/.ssh/conf.d conf.d/ ├── home ├── lab ├── X └── Y host entries in that files are ignored by tramp completion, because it looks for them in `~/.ssh/config` which in my example is empty. I found in the [docs](https://www.gnu.org/software/emacs/manual/html_nod e/tramp/Customizing-Completion.html) that there is `tramp-completion- function-alist` variable which defines which files parse foreach method but I am not sure about overwriting them. Pls help :) ---------------------------------------------------------------------- Phil-Hudson · 2022-04-06 15:29 I think you need to either advise or replace function `tramp-parse- sconfig` to do what it currently does for ~/.ssh/config for each file identified by an `Include` directive. ---------------------------------------------------------------------- Phil-Hudson · 2022-04-06 15:35 Come to think of it, this seems like it would be a useful TRAMP enhancement. You should probably raise an RFE with the dev list: `M-x report-emacs-bug`. ---------------------------------------------------------------------- AsterOps · 2022-04-06 19:52 Hey, thx for your answers. I found solution by myself. I've added to my tramp configuration following lines ``` (use-package tramp :config (add-to-list 'tramp-completion-function-alist '("ssh" (tramp-parse-sconfig "~/.ssh/conf.d/home") (tramp-parse-sconfig "~/.ssh/conf.d/lab") (tramp-parse-sconfig "~/.ssh/conf.d/X") (tramp-parse-sconfig "~/.ssh/conf.d/Y")))) ``` This will add to `tramp-completion-function-alist` variable my location where I store my ssh hosts and then completion works fine :) ---------------------------------------------------------------------- worthless-trash · 2022-04-07 22:28 I think that this is worth filing as a bug, you've got the setup and the domain knowledge to do this. Edit: thank you for sharing the workaround.