TRAMP can complete the following TRAMP file name components: method names, user names, host names, and file names located on remote hosts.
For example, type C-x C-f / s TAB, TRAMP completion choices show up as
sbin/ | scp: | scpx: | sftp: | sg: |
smb: | srv/ | ssh: | sshx: | su: |
sudo: | sys/ |
‘ssh:’ is a possible completion for the respective method, and ‘sbin/’ stands for the directory /sbin on your local host.
Type s h : for the minibuffer completion to ‘/ssh:’. Typing TAB shows host names TRAMP extracts from ~/.ssh/config file, for example:
ssh:127.0.0.1: | ssh:192.168.0.1: |
ssh:[::1]: | ssh:localhost: |
ssh:melancholia.danann.net: | ssh:melancholia: |
Choose a host from the above list and then continue to complete file names on that host.
When the configuration (see Selecting config files for user/host name completion) includes user names, then the completion lists will account for the user names as well.
Results from auth-sources
search (see Using an authentication file) are added to the completion candidates. This
search could be annoying, for example due to a passphrase request of
the ~/.authinfo.gpg authentication file. The user option
tramp-completion-use-auth-sources
controls, whether such a
search is performed during completion.
Remote hosts previously visited or hosts whose connections are kept
persistently (see Reusing connection related information) will be included in the
completion lists. If you want to suppress this completion because
there are invalid entries in the persistency file, for example if the
host configuration changes often, or if you plug your laptop to
different networks frequently, you can set the user option
tramp-completion-use-cache
to nil
.
After remote host name completion comes completion of file names on the remote host. It works the same as with local host file completion except that killing with double-slash // kills only the file name part of the TRAMP file name syntax. A triple-slash stands for the default behavior.
Example:
C-x C-f /ssh:melancholia:/usr/local/bin//etc TAB -| /ssh:melancholia:/etc C-x C-f /ssh:melancholia://etc TAB -| /ssh:melancholia:/etc C-x C-f /ssh:melancholia:/usr/local/bin///etc TAB -| /etc