After the installation of TRAMP into your Emacs, you
will be able to access files on remote hosts as though they were
local. Access to the remote file system for editing files, version
dired are transparently enabled.
Your access to the remote host can be with the
telnet programs or with any similar
connection method. This connection must pass ASCII
successfully to be usable but need not be 8-bit clean.
The package provides support for
ssh connections out of the
box, one of the more common uses of the package. This allows
relatively secure access to hosts, especially if
access is disabled.
Under Windows, TRAMP is integrated with the PuTTY package,
The majority of activity carried out by TRAMP requires only that the remote login is possible and is carried out at the terminal. In order to access remote files TRAMP needs to transfer their content to the local host temporarily.
TRAMP can transfer files between the hosts in a variety of ways. The details are easy to select, depending on your needs and the hosts in question.
The fastest transfer methods for large files rely on a remote file
transfer package such as
or (under Windows)
If the remote copy methods are not suitable for you, TRAMP also
supports the use of encoded transfers directly through the shell.
This requires that the
are available on the remote host. These methods are generally
faster for small files.
TRAMP is still under active development and any problems you encounter, trivial or major, should be reported to the TRAMP developers. See Bug Reports.
This section tries to explain what goes on behind the scenes when you access a remote file through TRAMP.
Suppose you type C-x C-f and enter part of an TRAMP file name, then hit TAB for completion. Suppose further that this is the first time that TRAMP is invoked for the host in question. Here’s what happens:
telnet). The login name is given in the file name, so TRAMP sends the login name and a newline.
telnetafter sending the login name). TRAMP displays the prompt in the minibuffer, asking you for the password or pass phrase.
You enter the password or pass phrase. TRAMP sends it to the remote host, followed by a newline.
If TRAMP sees neither of them after a certain period of time (a minute, say), then it issues an error message saying that it couldn’t find the remote shell prompt and shows you what the remote host has sent.
If TRAMP sees a ‘login failed’ message, it tells you so, aborts the login attempt and allows you to try again.
/bin/shbecause Bourne shells and C shells have different command syntaxes.1
After the Bourne shell has come up, TRAMP sends a few commands to ensure a good working environment. It turns off echoing, it sets the shell prompt, and a few other things.
So, TRAMP basically issues
ls commands and
echo with globbing. Another command that is
often used is
test to find out whether a file is writable or a
directory or the like. The output of each command is parsed for the
See above for an explanation of how TRAMP transfers the file contents.
For inline transfers, TRAMP issues a command like ‘mimencode -b /path/to/remote/file’, waits until the output has accumulated in the buffer that’s used for communication, then decodes that output to produce the file contents.
For external transfers, TRAMP issues a command like the following:
rcp user@host:/path/to/remote/file /tmp/tramp.4711
It then reads the local temporary file /tmp/tramp.4711 into a buffer and deletes the temporary file.
I hope this has provided you with a basic overview of what happens behind the scenes when you open a file with TRAMP.
/bin/sh will fail if your login
shell doesn’t recognize ‘exec /bin/sh’ as a valid command.
Maybe you use the Scheme shell