aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorMichael Albinus2014-01-12 16:19:07 +0100
committerMichael Albinus2014-01-12 16:19:07 +0100
commitc5eb43237d108a7d75bb9920b3b04d81c2089a92 (patch)
tree63c8cbe0586579e3371330e576fb5fa5bb5ec750 /doc
parent841a6d0cb8b667c8681a4df93b3ce2e752234280 (diff)
downloademacs-c5eb43237d108a7d75bb9920b3b04d81c2089a92.tar.gz
emacs-c5eb43237d108a7d75bb9920b3b04d81c2089a92.zip
* tramp.texi (all): Doc fix according to GNU Coding Standards.
Use "file name" instead of "filename" or "path". Use "host" instead of "machine".
Diffstat (limited to 'doc')
-rw-r--r--doc/misc/ChangeLog6
-rw-r--r--doc/misc/tramp.texi247
2 files changed, 128 insertions, 125 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 54a2a5de146..ce03a0aa1a5 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,9 @@
12014-01-12 Michael Albinus <michael.albinus@gmx.de>
2
3 * tramp.texi (all): Doc fix according to GNU Coding Standards.
4 Use "file name" instead of "filename" or "path". Use "host"
5 instead of "machine".
6
12014-01-12 Xue Fuqiao <xfq.free@gmail.com> 72014-01-12 Xue Fuqiao <xfq.free@gmail.com>
2 8
3 * eww.texi (Basics): Use "directory" instead of "path" (Bug#16419). 9 * eww.texi (Basics): Use "directory" instead of "path" (Bug#16419).
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index dfe57689e5e..b3057c255fc 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -17,7 +17,7 @@
17 17
18@include trampver.texi 18@include trampver.texi
19 19
20@c Macro for formatting a filename according to the respective syntax. 20@c Macro for formatting a file name according to the respective syntax.
21@c xxx and yyy are auxiliary macros in order to omit leading and 21@c xxx and yyy are auxiliary macros in order to omit leading and
22@c trailing whitespace. Not very elegant, but I don't know it better. 22@c trailing whitespace. Not very elegant, but I don't know it better.
23 23
@@ -198,7 +198,7 @@ Installing @value{tramp} with your @value{emacsname}
198 198
199Configuring @value{tramp} for use 199Configuring @value{tramp} for use
200 200
201* Connection types:: Types of connections made to remote machines. 201* Connection types:: Types of connections made to remote hosts.
202* Inline methods:: Inline methods. 202* Inline methods:: Inline methods.
203* External methods:: External methods. 203* External methods:: External methods.
204@ifset emacsgvfs 204@ifset emacsgvfs
@@ -217,7 +217,7 @@ Configuring @value{tramp} for use
217* Connection caching:: Reusing connection related information. 217* Connection caching:: Reusing connection related information.
218* Predefined connection information:: 218* Predefined connection information::
219 Setting own connection related information. 219 Setting own connection related information.
220* Remote Programs:: How @value{tramp} finds and uses programs on the remote machine. 220* Remote Programs:: How @value{tramp} finds and uses programs on the remote host.
221* Remote shell setup:: Remote shell setup hints. 221* Remote shell setup:: Remote shell setup hints.
222* Android shell setup:: Android shell setup hints. 222* Android shell setup:: Android shell setup hints.
223* Auto-save and Backup:: Auto-save and Backup. 223* Auto-save and Backup:: Auto-save and Backup.
@@ -225,8 +225,8 @@ Configuring @value{tramp} for use
225 225
226Using @value{tramp} 226Using @value{tramp}
227 227
228* Filename Syntax:: @value{tramp} filename conventions. 228* File name Syntax:: @value{tramp} file name conventions.
229* Filename completion:: Filename completion. 229* File name completion:: File name completion.
230* Ad-hoc multi-hops:: Declaring multiple hops in the file name. 230* Ad-hoc multi-hops:: Declaring multiple hops in the file name.
231* Remote processes:: Integration with other @value{emacsname} packages. 231* Remote processes:: Integration with other @value{emacsname} packages.
232* Cleanup remote connections:: Cleanup remote connections. 232* Cleanup remote connections:: Cleanup remote connections.
@@ -247,18 +247,18 @@ How file names, directories and localnames are mangled and managed
247@cindex overview 247@cindex overview
248 248
249After the installation of @value{tramp} into your @value{emacsname}, you 249After the installation of @value{tramp} into your @value{emacsname}, you
250will be able to access files on remote machines as though they were 250will be able to access files on remote hosts as though they were
251local. Access to the remote file system for editing files, version 251local. Access to the remote file system for editing files, version
252control, and @code{dired} are transparently enabled. 252control, and @code{dired} are transparently enabled.
253 253
254Your access to the remote machine can be with the @command{rsh}, 254Your access to the remote host can be with the @command{rsh},
255@command{rlogin}, @command{telnet} programs or with any similar 255@command{rlogin}, @command{telnet} programs or with any similar
256connection method. This connection must pass @acronym{ASCII} 256connection method. This connection must pass @acronym{ASCII}
257successfully to be usable but need not be 8-bit clean. 257successfully to be usable but need not be 8-bit clean.
258 258
259The package provides support for @command{ssh} connections out of the 259The package provides support for @command{ssh} connections out of the
260box, one of the more common uses of the package. This allows 260box, one of the more common uses of the package. This allows
261relatively secure access to machines, especially if @command{ftp} 261relatively secure access to hosts, especially if @command{ftp}
262access is disabled. 262access is disabled.
263 263
264Under Windows, @value{tramp} is integrated with the PuTTY package, 264Under Windows, @value{tramp} is integrated with the PuTTY package,
@@ -267,11 +267,11 @@ using the @command{plink} program.
267The majority of activity carried out by @value{tramp} requires only that 267The majority of activity carried out by @value{tramp} requires only that
268the remote login is possible and is carried out at the terminal. In 268the remote login is possible and is carried out at the terminal. In
269order to access remote files @value{tramp} needs to transfer their content 269order to access remote files @value{tramp} needs to transfer their content
270to the local machine temporarily. 270to the local host temporarily.
271 271
272@value{tramp} can transfer files between the machines in a variety of ways. 272@value{tramp} can transfer files between the hosts in a variety of ways.
273The details are easy to select, depending on your needs and the 273The details are easy to select, depending on your needs and the
274machines in question. 274hosts in question.
275 275
276The fastest transfer methods for large files rely on a remote file 276The fastest transfer methods for large files rely on a remote file
277transfer package such as @command{rcp}, @command{scp}, @command{rsync} 277transfer package such as @command{rcp}, @command{scp}, @command{rsync}
@@ -280,7 +280,7 @@ or (under Windows) @command{pscp}.
280If the remote copy methods are not suitable for you, @value{tramp} also 280If the remote copy methods are not suitable for you, @value{tramp} also
281supports the use of encoded transfers directly through the shell. 281supports the use of encoded transfers directly through the shell.
282This requires that the @command{mimencode} or @command{uuencode} tools 282This requires that the @command{mimencode} or @command{uuencode} tools
283are available on the remote machine. These methods are generally 283are available on the remote host. These methods are generally
284faster for small files. 284faster for small files.
285 285
286@value{tramp} is still under active development and any problems you encounter, 286@value{tramp} is still under active development and any problems you encounter,
@@ -351,7 +351,7 @@ shell prompt, and a few other things.
351@item 351@item
352Now the remote shell is up and it good working order. Remember, what 352Now the remote shell is up and it good working order. Remember, what
353was supposed to happen is that @value{tramp} tries to find out what files exist 353was supposed to happen is that @value{tramp} tries to find out what files exist
354on the remote host so that it can do filename completion. 354on the remote host so that it can do file name completion.
355 355
356So, @value{tramp} basically issues @command{cd} and @command{ls} commands and 356So, @value{tramp} basically issues @command{cd} and @command{ls} commands and
357also sometimes @command{echo} with globbing. Another command that is 357also sometimes @command{echo} with globbing. Another command that is
@@ -360,7 +360,7 @@ directory or the like. The output of each command is parsed for the
360necessary operation. 360necessary operation.
361 361
362@item 362@item
363Suppose you are finished with filename completion, have entered @kbd{C-x 363Suppose you are finished with file name completion, have entered @kbd{C-x
364C-f}, a full file name and hit @kbd{@key{RET}}. Now comes the time to 364C-f}, a full file name and hit @kbd{@key{RET}}. Now comes the time to
365transfer the file contents from the remote host to the local host so 365transfer the file contents from the remote host to the local host so
366that you can edit them. 366that you can edit them.
@@ -470,7 +470,7 @@ many more methods for getting a remote shell and for transferring the
470file contents were added. Support for VC was added. 470file contents were added. Support for VC was added.
471 471
472After that, there were added the multi-hop methods in April 2000 and 472After that, there were added the multi-hop methods in April 2000 and
473the unification of @value{tramp} and Ange-FTP filenames in July 2002. 473the unification of @value{tramp} and Ange-FTP file names in July 2002.
474In July 2004, multi-hop methods have been replaced by proxy hosts. 474In July 2004, multi-hop methods have been replaced by proxy hosts.
475Running commands on remote hosts was introduced in December 2005. 475Running commands on remote hosts was introduced in December 2005.
476@ifset emacsgw 476@ifset emacsgw
@@ -508,8 +508,8 @@ the first release including @value{tramp} was Emacs 22.1.
508@value{tramp} is (normally) fully functional when it is initially 508@value{tramp} is (normally) fully functional when it is initially
509installed. It is initially configured to use the @command{scp} 509installed. It is initially configured to use the @command{scp}
510program to connect to the remote host. So in the easiest case, you 510program to connect to the remote host. So in the easiest case, you
511just type @kbd{C-x C-f} and then enter the filename 511just type @kbd{C-x C-f} and then enter the file name
512@file{@trampfn{, user, machine, /path/to.file}}. 512@file{@trampfn{, user, host, /path/to.file}}.
513 513
514On some hosts, there are problems with opening a connection. These are 514On some hosts, there are problems with opening a connection. These are
515related to the behavior of the remote shell. See @xref{Remote shell 515related to the behavior of the remote shell. See @xref{Remote shell
@@ -518,7 +518,7 @@ setup}, for details on this.
518If you do not wish to use these commands to connect to the remote 518If you do not wish to use these commands to connect to the remote
519host, you should change the default connection and transfer method 519host, you should change the default connection and transfer method
520that @value{tramp} uses. There are several different methods that @value{tramp} 520that @value{tramp} uses. There are several different methods that @value{tramp}
521can use to connect to remote machines and transfer files 521can use to connect to remote hosts and transfer files
522(@pxref{Connection types}). 522(@pxref{Connection types}).
523 523
524If you don't know which method is right for you, see @xref{Default 524If you don't know which method is right for you, see @xref{Default
@@ -526,7 +526,7 @@ Method}.
526 526
527 527
528@menu 528@menu
529* Connection types:: Types of connections made to remote machines. 529* Connection types:: Types of connections made to remote hosts.
530* Inline methods:: Inline methods. 530* Inline methods:: Inline methods.
531* External methods:: External methods. 531* External methods:: External methods.
532@ifset emacsgvfs 532@ifset emacsgvfs
@@ -548,7 +548,7 @@ Method}.
548* Connection caching:: Reusing connection related information. 548* Connection caching:: Reusing connection related information.
549* Predefined connection information:: 549* Predefined connection information::
550 Setting own connection related information. 550 Setting own connection related information.
551* Remote Programs:: How @value{tramp} finds and uses programs on the remote machine. 551* Remote Programs:: How @value{tramp} finds and uses programs on the remote host.
552* Remote shell setup:: Remote shell setup hints. 552* Remote shell setup:: Remote shell setup hints.
553* Android shell setup:: Android shell setup hints. 553* Android shell setup:: Android shell setup hints.
554* Auto-save and Backup:: Auto-save and Backup. 554* Auto-save and Backup:: Auto-save and Backup.
@@ -557,17 +557,17 @@ Method}.
557 557
558 558
559@node Connection types 559@node Connection types
560@section Types of connections made to remote machines 560@section Types of connections made to remote hosts
561@cindex connection types, overview 561@cindex connection types, overview
562 562
563There are two basic types of transfer methods, each with its own 563There are two basic types of transfer methods, each with its own
564advantages and limitations. Both types of connection make use of a 564advantages and limitations. Both types of connection make use of a
565remote shell access program such as @command{rsh}, @command{ssh} or 565remote shell access program such as @command{rsh}, @command{ssh} or
566@command{telnet} to connect to the remote machine. 566@command{telnet} to connect to the remote host.
567 567
568This connection is used to perform many of the operations that @value{tramp} 568This connection is used to perform many of the operations that @value{tramp}
569requires to make the remote file system transparently accessible from 569requires to make the remote file system transparently accessible from
570the local machine. It is only when visiting files that the methods 570the local host. It is only when visiting files that the methods
571differ. 571differ.
572 572
573@cindex inline methods 573@cindex inline methods
@@ -575,9 +575,9 @@ differ.
575@cindex methods, inline 575@cindex methods, inline
576@cindex methods, external 576@cindex methods, external
577Loading or saving a remote file requires that the content of the file 577Loading or saving a remote file requires that the content of the file
578be transferred between the two machines. The content of the file can 578be transferred between the two hosts. The content of the file can
579be transferred using one of two methods: the @dfn{inline method} over 579be transferred using one of two methods: the @dfn{inline method} over
580the same connection used to log in to the remote machine, or the 580the same connection used to log in to the remote host, or the
581@dfn{external method} through another connection using a remote copy 581@dfn{external method} through another connection using a remote copy
582program such as @command{rcp}, @command{scp} or @command{rsync}. 582program such as @command{rcp}, @command{scp} or @command{rsync}.
583 583
@@ -607,12 +607,12 @@ action.
607The inline methods in @value{tramp} are quite powerful and can work in 607The inline methods in @value{tramp} are quite powerful and can work in
608situations where you cannot use an external transfer program to connect. 608situations where you cannot use an external transfer program to connect.
609Inline methods are the only methods that work when connecting to the 609Inline methods are the only methods that work when connecting to the
610remote machine via telnet. (There are also strange inline methods which 610remote host via telnet. (There are also strange inline methods which
611allow you to transfer files between @emph{user identities} rather than 611allow you to transfer files between @emph{user identities} rather than
612hosts, see below.) 612hosts, see below.)
613 613
614These methods depend on the existence of a suitable encoding and 614These methods depend on the existence of a suitable encoding and
615decoding command on remote machine. Locally, @value{tramp} may be able to 615decoding command on remote host. Locally, @value{tramp} may be able to
616use features of @value{emacsname} to decode and encode the files or 616use features of @value{emacsname} to decode and encode the files or
617it may require access to external commands to perform that task. 617it may require access to external commands to perform that task.
618 618
@@ -789,11 +789,11 @@ fair trade-off between both approaches.
789@cindex rsh (with rcp method) 789@cindex rsh (with rcp method)
790 790
791This method uses the @command{rsh} and @command{rcp} commands to connect 791This method uses the @command{rsh} and @command{rcp} commands to connect
792to the remote machine and transfer files. This is probably the fastest 792to the remote host and transfer files. This is probably the fastest
793connection method available. 793connection method available.
794 794
795The alternative method @option{remcp} uses the @command{remsh} and 795The alternative method @option{remcp} uses the @command{remsh} and
796@command{rcp} commands. It should be applied on machines where 796@command{rcp} commands. It should be applied on hosts where
797@command{remsh} is used instead of @command{rsh}. 797@command{remsh} is used instead of @command{rsh}.
798 798
799 799
@@ -804,8 +804,8 @@ The alternative method @option{remcp} uses the @command{remsh} and
804@cindex ssh (with scp method) 804@cindex ssh (with scp method)
805 805
806Using @command{ssh} to connect to the remote host and @command{scp} to 806Using @command{ssh} to connect to the remote host and @command{scp} to
807transfer files between the machines is the best method for securely 807transfer files between the hosts is the best method for securely
808connecting to a remote machine and accessing files. 808connecting to a remote host and accessing files.
809 809
810The performance of this option is also quite good. It may be slower than 810The performance of this option is also quite good. It may be slower than
811the inline methods when you often open and close small files however. 811the inline methods when you often open and close small files however.
@@ -843,7 +843,7 @@ This method supports the @samp{-p} argument.
843@cindex ssh (with rsync method) 843@cindex ssh (with rsync method)
844 844
845Using the @command{ssh} command to connect securely to the remote 845Using the @command{ssh} command to connect securely to the remote
846machine and the @command{rsync} command to transfer files is almost 846host and the @command{rsync} command to transfer files is almost
847identical to the @option{scp} method. 847identical to the @option{scp} method.
848 848
849While @command{rsync} performs much better than @command{scp} when 849While @command{rsync} performs much better than @command{scp} when
@@ -945,7 +945,7 @@ anyway.
945This is not a native @value{tramp} method. Instead, it forwards all 945This is not a native @value{tramp} method. Instead, it forwards all
946requests to @value{ftppackagename}. 946requests to @value{ftppackagename}.
947@ifset xemacs 947@ifset xemacs
948This works only for unified filenames, see @ref{Issues}. 948This works only for unified file names, see @ref{Issues}.
949@end ifset 949@end ifset
950 950
951 951
@@ -974,15 +974,15 @@ For authorization, MS Windows uses both a user name and a domain name.
974Because of this, the @value{tramp} syntax has been extended: you can 974Because of this, the @value{tramp} syntax has been extended: you can
975specify a user name which looks like @code{user%domain} (the real user 975specify a user name which looks like @code{user%domain} (the real user
976name, then a percent sign, then the domain name). So, to connect to 976name, then a percent sign, then the domain name). So, to connect to
977the machine @code{melancholia} as user @code{daniel} of the domain 977the host @code{melancholia} as user @code{daniel} of the domain
978@code{BIZARRE}, and edit @file{.emacs} in the home directory (share 978@code{BIZARRE}, and edit @file{.emacs} in the home directory (share
979@code{daniel$}) I would specify the filename @file{@trampfn{smb, 979@code{daniel$}) I would specify the file name @file{@trampfn{smb,
980daniel%BIZARRE, melancholia, /daniel$$/.emacs}}. 980daniel%BIZARRE, melancholia, /daniel$$/.emacs}}.
981 981
982Depending on the Windows domain configuration, a Windows user might be 982Depending on the Windows domain configuration, a Windows user might be
983considered as domain user per default. In order to connect as local 983considered as domain user per default. In order to connect as local
984user, the WINS name of that machine must be given as domain name. 984user, the WINS name of that host must be given as domain name.
985Usually, it is the machine name in capital letters. In the example 985Usually, it is the host name in capital letters. In the example
986above, the local user @code{daniel} would be specified as 986above, the local user @code{daniel} would be specified as
987@file{@trampfn{smb, daniel%MELANCHOLIA, melancholia, /daniel$$/.emacs}}. 987@file{@trampfn{smb, daniel%MELANCHOLIA, melancholia, /daniel$$/.emacs}}.
988 988
@@ -1156,7 +1156,7 @@ example, the following two lines specify to use the @option{ssh}
1156method for all user names matching @samp{john} and the @option{rsync} 1156method for all user names matching @samp{john} and the @option{rsync}
1157method for all host names matching @samp{lily}. The third line 1157method for all host names matching @samp{lily}. The third line
1158specifies to use the @option{su} method for the user @samp{root} on 1158specifies to use the @option{su} method for the user @samp{root} on
1159the machine @samp{localhost}. 1159the host @samp{localhost}.
1160 1160
1161@lisp 1161@lisp
1162(add-to-list 'tramp-default-method-alist '("" "john" "ssh")) 1162(add-to-list 'tramp-default-method-alist '("" "john" "ssh"))
@@ -1180,9 +1180,9 @@ environment you will use them in and, especially when used over the
1180Internet, the security implications of your preferred method. 1180Internet, the security implications of your preferred method.
1181 1181
1182The @option{rsh} and @option{telnet} methods send your password as 1182The @option{rsh} and @option{telnet} methods send your password as
1183plain text as you log in to the remote machine, as well as 1183plain text as you log in to the remote host, as well as
1184transferring the files in such a way that the content can easily be 1184transferring the files in such a way that the content can easily be
1185read from other machines. 1185read from other hosts.
1186 1186
1187If you need to connect to remote systems that are accessible from the 1187If you need to connect to remote systems that are accessible from the
1188Internet, you should give serious thought to using @option{ssh} based 1188Internet, you should give serious thought to using @option{ssh} based
@@ -1207,7 +1207,7 @@ want to edit mostly small files. And if you access large text files,
1207compression (driven by @var{tramp-inline-compress-start-size}) shall 1207compression (driven by @var{tramp-inline-compress-start-size}) shall
1208still result in good performance. 1208still result in good performance.
1209 1209
1210I guess that these days, most people can access a remote machine by 1210I guess that these days, most people can access a remote host by
1211using @command{ssh}. So I suggest that you use the @option{ssh} 1211using @command{ssh}. So I suggest that you use the @option{ssh}
1212method. So, type @kbd{C-x C-f @trampfn{ssh, root, otherhost, 1212method. So, type @kbd{C-x C-f @trampfn{ssh, root, otherhost,
1213/etc/motd} @key{RET}} to edit the @file{/etc/motd} file on the other 1213/etc/motd} @key{RET}} to edit the @file{/etc/motd} file on the other
@@ -1359,7 +1359,7 @@ file name located on a remote target matching @var{user}@@@var{host}.
1359@var{host} and @var{user} are regular expressions or @code{nil}, which 1359@var{host} and @var{user} are regular expressions or @code{nil}, which
1360is interpreted as a regular expression which always matches. 1360is interpreted as a regular expression which always matches.
1361 1361
1362@var{proxy} must be a Tramp filename which localname part is ignored. 1362@var{proxy} must be a Tramp file name which localname part is ignored.
1363Method and user name on @var{proxy} are optional, which is interpreted 1363Method and user name on @var{proxy} are optional, which is interpreted
1364with the default values. 1364with the default values.
1365@ifset emacsgw 1365@ifset emacsgw
@@ -1500,7 +1500,7 @@ variable, accessible with @kbd{C-h v tramp-methods @key{RET}}.
1500 1500
1501The variable @code{tramp-completion-function-alist} is intended to 1501The variable @code{tramp-completion-function-alist} is intended to
1502customize which files are taken into account for user and host name 1502customize which files are taken into account for user and host name
1503completion (@pxref{Filename completion}). For every method, it keeps 1503completion (@pxref{File name completion}). For every method, it keeps
1504a set of configuration files, accompanied by a Lisp function able to 1504a set of configuration files, accompanied by a Lisp function able to
1505parse that file. Entries in @code{tramp-completion-function-alist} 1505parse that file. Entries in @code{tramp-completion-function-alist}
1506have the form (@var{method} @var{pair1} @var{pair2} ...). 1506have the form (@var{method} @var{pair1} @var{pair2} ...).
@@ -1763,7 +1763,7 @@ connection at will. Since there is no reliable test for this,
1763 1763
1764 1764
1765@node Remote Programs 1765@node Remote Programs
1766@section How @value{tramp} finds and uses programs on the remote machine 1766@section How @value{tramp} finds and uses programs on the remote host
1767 1767
1768@value{tramp} depends on a number of programs on the remote host in order to 1768@value{tramp} depends on a number of programs on the remote host in order to
1769function, including @command{ls}, @command{test}, @command{find} and 1769function, including @command{ls}, @command{test}, @command{find} and
@@ -1782,14 +1782,14 @@ remote file access.
1782@vindex tramp-default-remote-path 1782@vindex tramp-default-remote-path
1783@vindex tramp-own-remote-path 1783@vindex tramp-own-remote-path
1784@defopt tramp-remote-path 1784@defopt tramp-remote-path
1785When @value{tramp} connects to the remote machine, it searches for the 1785When @value{tramp} connects to the remote host, it searches for the
1786programs that it can use. The variable @code{tramp-remote-path} 1786programs that it can use. The variable @code{tramp-remote-path}
1787controls the directories searched on the remote machine. 1787controls the directories searched on the remote host.
1788 1788
1789By default, this is set to a reasonable set of defaults for most 1789By default, this is set to a reasonable set of defaults for most
1790machines. The symbol @code{tramp-default-remote-path} is a place 1790hosts. The symbol @code{tramp-default-remote-path} is a place
1791holder, it is replaced by the list of directories received via the 1791holder, it is replaced by the list of directories received via the
1792command @command{getconf PATH} on your remote machine. For example, 1792command @command{getconf PATH} on your remote host. For example,
1793on Debian GNU/Linux this is @file{/bin:/usr/bin}, whereas on Solaris 1793on Debian GNU/Linux this is @file{/bin:/usr/bin}, whereas on Solaris
1794this is @file{/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/opt/SUNWspro/bin}. 1794this is @file{/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/opt/SUNWspro/bin}.
1795It is recommended to apply this symbol on top of 1795It is recommended to apply this symbol on top of
@@ -2067,7 +2067,7 @@ fi
2067Android devices use a restricted shell. They can be accessed via the 2067Android devices use a restricted shell. They can be accessed via the
2068@option{adb} method. However, this restricts the access to a USB 2068@option{adb} method. However, this restricts the access to a USB
2069connection, and it requires the installation of the Android SDK on the 2069connection, and it requires the installation of the Android SDK on the
2070local machine. 2070local host.
2071 2071
2072When an @command{sshd} process runs on the Android device, like 2072When an @command{sshd} process runs on the Android device, like
2073provided by the @code{SSHDroid} app, any @option{ssh}-based method can 2073provided by the @code{SSHDroid} app, any @option{ssh}-based method can
@@ -2293,7 +2293,7 @@ This section needs a lot of work! Please help.
2293@cindex sshx method with Cygwin 2293@cindex sshx method with Cygwin
2294The recent Cygwin installation of @command{ssh} works only with a 2294The recent Cygwin installation of @command{ssh} works only with a
2295Cygwinized @value{emacsname}. You can check it by typing @kbd{M-x 2295Cygwinized @value{emacsname}. You can check it by typing @kbd{M-x
2296eshell}, and starting @kbd{ssh test.machine}. The problem is evident 2296eshell}, and starting @kbd{ssh test.host}. The problem is evident
2297if you see a message like this: 2297if you see a message like this:
2298 2298
2299@example 2299@example
@@ -2309,12 +2309,12 @@ can find information about setting up Cygwin in their FAQ at
2309@cindex scpx method with Cygwin 2309@cindex scpx method with Cygwin
2310If you wish to use the @option{scpx} connection method, then you might 2310If you wish to use the @option{scpx} connection method, then you might
2311have the problem that @value{emacsname} calls @command{scp} with a 2311have the problem that @value{emacsname} calls @command{scp} with a
2312Windows filename such as @code{c:/foo}. The Cygwin version of 2312Windows file name such as @code{c:/foo}. The Cygwin version of
2313@command{scp} does not know about Windows filenames and interprets 2313@command{scp} does not know about Windows file names and interprets
2314this as a remote filename on the host @code{c}. 2314this as a remote file name on the host @code{c}.
2315 2315
2316One possible workaround is to write a wrapper script for @option{scp} 2316One possible workaround is to write a wrapper script for @option{scp}
2317which converts the Windows filename to a Cygwinized filename. 2317which converts the Windows file name to a Cygwinized file name.
2318 2318
2319@cindex Cygwin and ssh-agent 2319@cindex Cygwin and ssh-agent
2320@cindex SSH_AUTH_SOCK and @value{emacsname} on Windows 2320@cindex SSH_AUTH_SOCK and @value{emacsname} on Windows
@@ -2338,7 +2338,7 @@ know anything at all about Windows@dots{}
2338@cindex using @value{tramp} 2338@cindex using @value{tramp}
2339 2339
2340Once you have installed @value{tramp} it will operate fairly 2340Once you have installed @value{tramp} it will operate fairly
2341transparently. You will be able to access files on any remote machine 2341transparently. You will be able to access files on any remote host
2342that you can log in to as though they were local. 2342that you can log in to as though they were local.
2343 2343
2344Files are specified to @value{tramp} using a formalized syntax specifying the 2344Files are specified to @value{tramp} using a formalized syntax specifying the
@@ -2357,52 +2357,52 @@ minute when a connection needs to be opened. Maybe after half a
2357minute you have already forgotten that you hit that key! 2357minute you have already forgotten that you hit that key!
2358 2358
2359@menu 2359@menu
2360* Filename Syntax:: @value{tramp} filename conventions. 2360* File name Syntax:: @value{tramp} file name conventions.
2361* Filename completion:: Filename completion. 2361* File name completion:: File name completion.
2362* Ad-hoc multi-hops:: Declaring multiple hops in the file name. 2362* Ad-hoc multi-hops:: Declaring multiple hops in the file name.
2363* Remote processes:: Integration with other @value{emacsname} packages. 2363* Remote processes:: Integration with other @value{emacsname} packages.
2364* Cleanup remote connections:: Cleanup remote connections. 2364* Cleanup remote connections:: Cleanup remote connections.
2365@end menu 2365@end menu
2366 2366
2367 2367
2368@node Filename Syntax 2368@node File name Syntax
2369@section @value{tramp} filename conventions 2369@section @value{tramp} file name conventions
2370@cindex filename syntax 2370@cindex file name syntax
2371@cindex filename examples 2371@cindex file name examples
2372 2372
2373To access the file @var{localname} on the remote machine @var{machine} 2373To access the file @var{localname} on the remote host @var{host}
2374you would specify the filename @file{@trampfn{, , machine, 2374you would specify the file name @file{@trampfn{, , host,
2375localname}}. This will connect to @var{machine} and transfer the file 2375localname}}. This will connect to @var{host} and transfer the file
2376using the default method. @xref{Default Method}. 2376using the default method. @xref{Default Method}.
2377 2377
2378Some examples of @value{tramp} filenames are shown below. 2378Some examples of @value{tramp} file names are shown below.
2379 2379
2380@table @file 2380@table @file
2381@item @value{prefix}melancholia@value{postfix}.emacs 2381@item @value{prefix}melancholia@value{postfix}.emacs
2382Edit the file @file{.emacs} in your home directory on the machine 2382Edit the file @file{.emacs} in your home directory on the host
2383@code{melancholia}. 2383@code{melancholia}.
2384 2384
2385@item @value{prefix}melancholia.danann.net@value{postfix}.emacs 2385@item @value{prefix}melancholia.danann.net@value{postfix}.emacs
2386This edits the same file, using the fully qualified domain name of 2386This edits the same file, using the fully qualified domain name of
2387the machine. 2387the host.
2388 2388
2389@item @value{prefix}melancholia@value{postfix}~/.emacs 2389@item @value{prefix}melancholia@value{postfix}~/.emacs
2390This also edits the same file; the @file{~} is expanded to your 2390This also edits the same file; the @file{~} is expanded to your
2391home directory on the remote machine, just like it is locally. 2391home directory on the remote host, just like it is locally.
2392 2392
2393@item @value{prefix}melancholia@value{postfix}~daniel/.emacs 2393@item @value{prefix}melancholia@value{postfix}~daniel/.emacs
2394This edits the file @file{.emacs} in the home directory of the user 2394This edits the file @file{.emacs} in the home directory of the user
2395@code{daniel} on the machine @code{melancholia}. The @file{~<user>} 2395@code{daniel} on the host @code{melancholia}. The @file{~<user>}
2396construct is expanded to the home directory of that user on the remote 2396construct is expanded to the home directory of that user on the remote
2397machine. 2397host.
2398 2398
2399@item @value{prefix}melancholia@value{postfix}/etc/squid.conf 2399@item @value{prefix}melancholia@value{postfix}/etc/squid.conf
2400This edits the file @file{/etc/squid.conf} on the machine 2400This edits the file @file{/etc/squid.conf} on the host
2401@code{melancholia}. 2401@code{melancholia}.
2402 2402
2403@end table 2403@end table
2404 2404
2405@var{machine} can also be an IPv4 or IPv6 address, like in 2405@var{host} can also be an IPv4 or IPv6 address, like in
2406@file{@trampfn{, , 127.0.0.1, .emacs}} or @file{@trampfn{, , 2406@file{@trampfn{, , 127.0.0.1, .emacs}} or @file{@trampfn{, ,
2407@value{ipv6prefix}::1@value{ipv6postfix}, .emacs}}. 2407@value{ipv6prefix}::1@value{ipv6postfix}, .emacs}}.
2408@ifset emacs 2408@ifset emacs
@@ -2413,17 +2413,17 @@ brackets @file{@value{ipv6prefix}} and @file{@value{ipv6postfix}}.
2413Unless you specify a different name to use, @value{tramp} will use the 2413Unless you specify a different name to use, @value{tramp} will use the
2414current local user name as the remote user name to log in with. If you 2414current local user name as the remote user name to log in with. If you
2415need to log in as a different user, you can specify the user name as 2415need to log in as a different user, you can specify the user name as
2416part of the filename. 2416part of the file name.
2417 2417
2418To log in to the remote machine as a specific user, you use the syntax 2418To log in to the remote host as a specific user, you use the syntax
2419@file{@trampfn{, user, machine, path/to.file}}. That means that 2419@file{@trampfn{, user, host, path/to.file}}. That means that
2420connecting to @code{melancholia} as @code{daniel} and editing 2420connecting to @code{melancholia} as @code{daniel} and editing
2421@file{.emacs} in your home directory you would specify 2421@file{.emacs} in your home directory you would specify
2422@file{@trampfn{, daniel, melancholia, .emacs}}. 2422@file{@trampfn{, daniel, melancholia, .emacs}}.
2423 2423
2424It is also possible to specify other file transfer methods 2424It is also possible to specify other file transfer methods
2425(@pxref{Inline methods}, @pxref{External methods}) as part of the 2425(@pxref{Inline methods}, @pxref{External methods}) as part of the
2426filename. 2426file name.
2427@ifset emacs 2427@ifset emacs
2428This is done by putting the method before the user and host name, as 2428This is done by putting the method before the user and host name, as
2429in @file{@value{prefix}@var{method}@value{postfixhop}} (Note the 2429in @file{@value{prefix}@var{method}@value{postfixhop}} (Note the
@@ -2434,15 +2434,15 @@ This is done by replacing the initial @file{@value{prefix}} with
2434@file{@value{prefix}<method>@value{postfixhop}}. (Note the trailing 2434@file{@value{prefix}<method>@value{postfixhop}}. (Note the trailing
2435slash!). 2435slash!).
2436@end ifset 2436@end ifset
2437The user, machine and file specification remain the same. 2437The user, host and file specification remain the same.
2438 2438
2439So, to connect to the machine @code{melancholia} as @code{daniel}, 2439So, to connect to the host @code{melancholia} as @code{daniel},
2440using the @option{ssh} method to transfer files, and edit 2440using the @option{ssh} method to transfer files, and edit
2441@file{.emacs} in my home directory I would specify the filename 2441@file{.emacs} in my home directory I would specify the file name
2442@file{@trampfn{ssh, daniel, melancholia, .emacs}}. 2442@file{@trampfn{ssh, daniel, melancholia, .emacs}}.
2443 2443
2444@ifset emacs 2444@ifset emacs
2445A remote filename containing a host name only, which is equal to a 2445A remote file name containing a host name only, which is equal to a
2446method name, is not allowed. If such a host name is used, it must 2446method name, is not allowed. If such a host name is used, it must
2447always be preceded by an explicit method name, like 2447always be preceded by an explicit method name, like
2448@file{@value{prefix}ssh@value{postfixhop}ssh@value{postfix}}. 2448@file{@value{prefix}ssh@value{postfixhop}ssh@value{postfix}}.
@@ -2454,13 +2454,13 @@ by adding @file{#<port>} to the host name, like in @file{@trampfn{ssh,
2454daniel, melancholia#42, .emacs}}. 2454daniel, melancholia#42, .emacs}}.
2455 2455
2456 2456
2457@node Filename completion 2457@node File name completion
2458@section Filename completion 2458@section File name completion
2459@cindex filename completion 2459@cindex file name completion
2460 2460
2461Filename completion works with @value{tramp} for completion of method 2461File name completion works with @value{tramp} for completion of method
2462names, of user names and of machine names as well as for completion of 2462names, of user names and of host names as well as for completion of
2463file names on remote machines. 2463file names on remote hosts.
2464@ifset emacs 2464@ifset emacs
2465In order to enable this, partial completion must be activated in your 2465In order to enable this, partial completion must be activated in your
2466@file{.emacs}. 2466@file{.emacs}.
@@ -2488,8 +2488,7 @@ If you, for example, type @kbd{C-x C-f @value{prefix}t
2488@samp{@value{prefixhop}telnet@value{postfixhop}} 2488@samp{@value{prefixhop}telnet@value{postfixhop}}
2489is a possible completion for the respective method, 2489is a possible completion for the respective method,
2490@ifset emacs 2490@ifset emacs
2491@samp{tmp/} stands for the directory @file{/tmp} on your local 2491@samp{tmp/} stands for the directory @file{/tmp} on your local host,
2492machine,
2493@end ifset 2492@end ifset
2494and @samp{@value{prefixhop}toto@value{postfix}} 2493and @samp{@value{prefixhop}toto@value{postfix}}
2495might be a host @value{tramp} has detected in your @file{~/.ssh/known_hosts} 2494might be a host @value{tramp} has detected in your @file{~/.ssh/known_hosts}
@@ -2497,7 +2496,7 @@ file (given you're using default method @option{ssh}).
2497 2496
2498If you go on to type @kbd{e @key{TAB}}, the minibuffer is completed to 2497If you go on to type @kbd{e @key{TAB}}, the minibuffer is completed to
2499@samp{@value{prefix}telnet@value{postfixhop}}. 2498@samp{@value{prefix}telnet@value{postfixhop}}.
2500Next @kbd{@key{TAB}} brings you all machine names @value{tramp} detects in 2499Next @kbd{@key{TAB}} brings you all host names @value{tramp} detects in
2501your @file{/etc/hosts} file, let's say 2500your @file{/etc/hosts} file, let's say
2502 2501
2503@example 2502@example
@@ -2509,21 +2508,21 @@ your @file{/etc/hosts} file, let's say
2509@end multitable 2508@end multitable
2510@end example 2509@end example
2511 2510
2512Now you can choose the desired machine, and you can continue to 2511Now you can choose the desired host, and you can continue to
2513complete file names on that machine. 2512complete file names on that host.
2514 2513
2515If the configuration files (@pxref{Customizing Completion}), which 2514If the configuration files (@pxref{Customizing Completion}), which
2516@value{tramp} uses for analysis of completion, offer user names, those user 2515@value{tramp} uses for analysis of completion, offer user names, those user
2517names will be taken into account as well. 2516names will be taken into account as well.
2518 2517
2519Remote machines which have been visited in the past and kept 2518Remote hosts which have been visited in the past and kept
2520persistently (@pxref{Connection caching}) will be offered too. 2519persistently (@pxref{Connection caching}) will be offered too.
2521 2520
2522Once the remote machine identification is completed, it comes to 2521Once the remote host identification is completed, it comes to
2523filename completion on the remote host. This works pretty much like 2522file name completion on the remote host. This works pretty much like
2524for files on the local host, with the exception that minibuffer 2523for files on the local host, with the exception that minibuffer
2525killing via a double-slash works only on the filename part, except 2524killing via a double-slash works only on the file name part, except
2526that filename part starts with @file{//}. 2525that file name part starts with @file{//}.
2527@ifset emacs 2526@ifset emacs
2528A triple-slash stands for the default behavior. 2527A triple-slash stands for the default behavior.
2529@end ifset 2528@end ifset
@@ -2557,14 +2556,14 @@ Example:
2557 2556
2558A remote directory might have changed its contents out of 2557A remote directory might have changed its contents out of
2559@value{emacsname} control, for example by creation or deletion of 2558@value{emacsname} control, for example by creation or deletion of
2560files by other processes. Therefore, during filename completion, the 2559files by other processes. Therefore, during file name completion, the
2561remote directory contents are reread regularly in order to detect such 2560remote directory contents are reread regularly in order to detect such
2562changes, which would be invisible otherwise (@pxref{Connection caching}). 2561changes, which would be invisible otherwise (@pxref{Connection caching}).
2563 2562
2564@defopt tramp-completion-reread-directory-timeout 2563@defopt tramp-completion-reread-directory-timeout
2565This variable defines the number of seconds since last remote command 2564This variable defines the number of seconds since last remote command
2566before rereading a directory contents. A value of 0 would require an 2565before rereading a directory contents. A value of 0 would require an
2567immediate reread during filename completion, @code{nil} means to use 2566immediate reread during file name completion, @code{nil} means to use
2568always cached values for the directory contents. 2567always cached values for the directory contents.
2569@end defopt 2568@end defopt
2570 2569
@@ -2632,7 +2631,7 @@ host when the variable @code{default-directory} is remote:
2632@ifset emacsgvfs 2631@ifset emacsgvfs
2633If the remote host is mounted via GVFS (see @ref{GVFS based methods}), 2632If the remote host is mounted via GVFS (see @ref{GVFS based methods}),
2634the remote filesystem is mounted locally. Therefore, there are no 2633the remote filesystem is mounted locally. Therefore, there are no
2635remote processes; all processes run still locally on your machine with 2634remote processes; all processes run still locally on your host with
2636an adapted @code{default-directory}. This section does not apply for 2635an adapted @code{default-directory}. This section does not apply for
2637such connection methods. 2636such connection methods.
2638@end ifset 2637@end ifset
@@ -2645,7 +2644,7 @@ integrated. Integration of further packages is planned, any help for
2645this is welcome! 2644this is welcome!
2646 2645
2647When your program is not found in the default search path 2646When your program is not found in the default search path
2648@value{tramp} sets on the remote machine, you should either use an 2647@value{tramp} sets on the remote host, you should either use an
2649absolute path, or extend @code{tramp-remote-path} (see @ref{Remote 2648absolute path, or extend @code{tramp-remote-path} (see @ref{Remote
2650Programs}): 2649Programs}):
2651 2650
@@ -2713,18 +2712,18 @@ that host.
2713 2712
2714Calling @kbd{M-x shell} in a buffer related to a remote host runs the 2713Calling @kbd{M-x shell} in a buffer related to a remote host runs the
2715local shell as defined in @option{shell-file-name}. This might be 2714local shell as defined in @option{shell-file-name}. This might be
2716also a valid path name for a shell to be applied on the remote host, 2715also a valid file name for a shell to be applied on the remote host,
2717but it will fail at least when your local and remote hosts belong to 2716but it will fail at least when your local and remote hosts belong to
2718different system types, like @samp{windows-nt} and @samp{gnu/linux}. 2717different system types, like @samp{windows-nt} and @samp{gnu/linux}.
2719 2718
2720You must set the variable @option{explicit-shell-file-name} to the 2719You must set the variable @option{explicit-shell-file-name} to the
2721shell path name on the remote host, in order to start that shell on 2720shell file name on the remote host, in order to start that shell on
2722the remote host. 2721the remote host.
2723 2722
2724@ifset emacs 2723@ifset emacs
2725Starting with Emacs 24 this won't be necessary, if you call 2724Starting with Emacs 24 this won't be necessary, if you call
2726@code{shell} interactively. You will be asked for the remote shell 2725@code{shell} interactively. You will be asked for the remote shell
2727path, if you are on a remote buffer, and if 2726file name, if you are on a remote buffer, and if
2728@option{explicit-shell-file-name} is equal to @code{nil}. 2727@option{explicit-shell-file-name} is equal to @code{nil}.
2729@end ifset 2728@end ifset
2730 2729
@@ -2924,7 +2923,7 @@ the @value{tramp} Mail Subscription Page}.
2924@ifset emacs 2923@ifset emacs
2925@ifset installchapter 2924@ifset installchapter
2926Before sending a bug report, you could check whether @value{tramp} 2925Before sending a bug report, you could check whether @value{tramp}
2927works at all. Run the test suite on your local machine, @ref{Testing}. 2926works at all. Run the test suite on your local host, @ref{Testing}.
2928@end ifset 2927@end ifset
2929@end ifset 2928@end ifset
2930 2929
@@ -2935,7 +2934,7 @@ of your system and @value{tramp} version.
2935 2934
2936When submitting a bug report, please try to describe in excruciating 2935When submitting a bug report, please try to describe in excruciating
2937detail the steps required to reproduce the problem, the setup of the 2936detail the steps required to reproduce the problem, the setup of the
2938remote machine and any special conditions that exist. You should also 2937remote host and any special conditions that exist. You should also
2939check that your problem is not described already in @xref{Frequently 2938check that your problem is not described already in @xref{Frequently
2940Asked Questions}. 2939Asked Questions}.
2941 2940
@@ -3009,7 +3008,7 @@ information about remote hosts is kept in the file specified in
3009confident that files on remote hosts are not changed out of 3008confident that files on remote hosts are not changed out of
3010@value{emacsname}' control, set @code{remote-file-name-inhibit-cache} 3009@value{emacsname}' control, set @code{remote-file-name-inhibit-cache}
3011to @code{nil}. Set also @code{tramp-completion-reread-directory-timeout} 3010to @code{nil}. Set also @code{tramp-completion-reread-directory-timeout}
3012to @code{nil}, @ref{Filename completion}. 3011to @code{nil}, @ref{File name completion}.
3013 3012
3014Disable version control. If you access remote files which are not 3013Disable version control. If you access remote files which are not
3015under version control, a lot of check operations can be avoided by 3014under version control, a lot of check operations can be avoided by
@@ -3037,7 +3036,7 @@ reasons heading the bug mailing list:
3037@item 3036@item
3038Unknown characters in the prompt 3037Unknown characters in the prompt
3039 3038
3040@value{tramp} needs to recognize the prompt on the remote machine 3039@value{tramp} needs to recognize the prompt on the remote host
3041after execution any command. This is not possible when the prompt 3040after execution any command. This is not possible when the prompt
3042contains unknown characters like escape sequences for coloring. This 3041contains unknown characters like escape sequences for coloring. This
3043should be avoided on the remote side. @xref{Remote shell setup}. for 3042should be avoided on the remote side. @xref{Remote shell setup}. for
@@ -3069,7 +3068,7 @@ incidentally) doesn't work with WinSSHD due to strange prompt settings.
3069@item 3068@item
3070Echoed characters after login 3069Echoed characters after login
3071 3070
3072When the remote machine opens an echoing shell, there might be control 3071When the remote host opens an echoing shell, there might be control
3073characters in the welcome message. @value{tramp} tries to suppress 3072characters in the welcome message. @value{tramp} tries to suppress
3074such echoes via the @command{stty -echo} command, but sometimes this 3073such echoes via the @command{stty -echo} command, but sometimes this
3075command is not reached, because the echoed output has confused 3074command is not reached, because the echoed output has confused
@@ -3167,7 +3166,7 @@ your @file{~/.ssh/config}:
3167@item 3166@item
3168File name completion does not work with @value{tramp} 3167File name completion does not work with @value{tramp}
3169 3168
3170When you log in to the remote machine, do you see the output of 3169When you log in to the remote host, do you see the output of
3171@command{ls} in color? If so, this may be the cause of your problems. 3170@command{ls} in color? If so, this may be the cause of your problems.
3172 3171
3173@command{ls} outputs @acronym{ANSI} escape sequences that your terminal 3172@command{ls} outputs @acronym{ANSI} escape sequences that your terminal
@@ -3175,12 +3174,12 @@ emulator interprets to set the colors. These escape sequences will
3175confuse @value{tramp} however. 3174confuse @value{tramp} however.
3176 3175
3177In your @file{.bashrc}, @file{.profile} or equivalent on the remote 3176In your @file{.bashrc}, @file{.profile} or equivalent on the remote
3178machine you probably have an alias configured that adds the option 3177host you probably have an alias configured that adds the option
3179@option{--color=yes} or @option{--color=auto}. 3178@option{--color=yes} or @option{--color=auto}.
3180 3179
3181You should remove that alias and ensure that a new login @emph{does not} 3180You should remove that alias and ensure that a new login @emph{does not}
3182display the output of @command{ls} in color. If you still cannot use 3181display the output of @command{ls} in color. If you still cannot use
3183filename completion, report a bug to the @value{tramp} developers. 3182file name completion, report a bug to the @value{tramp} developers.
3184 3183
3185 3184
3186@item 3185@item
@@ -3726,7 +3725,7 @@ names. As such, the lisp functions @code{file-name-directory} and
3726package. 3725package.
3727 3726
3728Their replacements are reasonably simplistic in their approach. They 3727Their replacements are reasonably simplistic in their approach. They
3729dissect the filename, call the original handler on the localname and 3728dissect the file name, call the original handler on the localname and
3730then rebuild the @value{tramp} file name with the result. 3729then rebuild the @value{tramp} file name with the result.
3731 3730
3732This allows the platform specific hacks in the original handlers to take 3731This allows the platform specific hacks in the original handlers to take
@@ -3736,19 +3735,19 @@ effect while preserving the @value{tramp} file name information.
3736@ifset emacs 3735@ifset emacs
3737@node External packages 3736@node External packages
3738@section Integration with external Lisp packages 3737@section Integration with external Lisp packages
3739@subsection Filename completion. 3738@subsection File name completion.
3740 3739
3741While reading filenames in the minibuffer, @value{tramp} must decide 3740While reading file names in the minibuffer, @value{tramp} must decide
3742whether it completes possible incomplete filenames, or not. Imagine 3741whether it completes possible incomplete file names, or not. Imagine
3743there is the following situation: You have typed @kbd{C-x C-f 3742there is the following situation: You have typed @kbd{C-x C-f
3744@value{prefix}ssh@value{postfixhop} @key{TAB}}. @value{tramp} cannot 3743@value{prefix}ssh@value{postfixhop} @key{TAB}}. @value{tramp} cannot
3745know, whether @option{ssh} is a method or a host name. It checks 3744know, whether @option{ssh} is a method or a host name. It checks
3746therefore the last input character you have typed. If this is 3745therefore the last input character you have typed. If this is
3747@key{TAB}, @key{SPACE} or @kbd{?}, @value{tramp} assumes that you are 3746@key{TAB}, @key{SPACE} or @kbd{?}, @value{tramp} assumes that you are
3748still in filename completion, and it does not connect to the possible 3747still in file name completion, and it does not connect to the possible
3749remote host @option{ssh}. 3748remote host @option{ssh}.
3750 3749
3751External packages, which use other characters for completing filenames 3750External packages, which use other characters for completing file names
3752in the minibuffer, must signal this to @value{tramp}. For this case, 3751in the minibuffer, must signal this to @value{tramp}. For this case,
3753the variable @code{non-essential} can be bound temporarily to 3752the variable @code{non-essential} can be bound temporarily to
3754a non-@code{nil} value. 3753a non-@code{nil} value.
@@ -3891,16 +3890,16 @@ printed and deleted.
3891But I have decided that this is too fragile to reliably work, so on some 3890But I have decided that this is too fragile to reliably work, so on some
3892systems you'll have to do without the uuencode methods. 3891systems you'll have to do without the uuencode methods.
3893 3892
3894@item The @value{tramp} filename syntax differs between Emacs and XEmacs. 3893@item The @value{tramp} file name syntax differs between Emacs and XEmacs.
3895 3894
3896The Emacs maintainers wish to use a unified filename syntax for 3895The Emacs maintainers wish to use a unified file name syntax for
3897Ange-FTP and @value{tramp} so that users don't have to learn a new 3896Ange-FTP and @value{tramp} so that users don't have to learn a new
3898syntax. It is sufficient to learn some extensions to the old syntax. 3897syntax. It is sufficient to learn some extensions to the old syntax.
3899 3898
3900For the XEmacs maintainers, the problems caused from using a unified 3899For the XEmacs maintainers, the problems caused from using a unified
3901filename syntax are greater than the gains. The XEmacs package system 3900file name syntax are greater than the gains. The XEmacs package system
3902uses EFS for downloading new packages. So, obviously, EFS has to be 3901uses EFS for downloading new packages. So, obviously, EFS has to be
3903installed from the start. If the filenames were unified, @value{tramp} 3902installed from the start. If the file names were unified, @value{tramp}
3904would have to be installed from the start, too. 3903would have to be installed from the start, too.
3905 3904
3906@ifset xemacs 3905@ifset xemacs
@@ -3917,12 +3916,12 @@ The autoload of the @value{emacsname} @value{tramp} package must be
3917disabled. This can be achieved by setting file permissions @code{000} 3916disabled. This can be achieved by setting file permissions @code{000}
3918to the files @file{.../xemacs-packages/lisp/tramp/auto-autoloads.el*}. 3917to the files @file{.../xemacs-packages/lisp/tramp/auto-autoloads.el*}.
3919 3918
3920In case of unified filenames, all @value{emacsname} download sites are 3919In case of unified file names, all @value{emacsname} download sites are
3921added to @code{tramp-default-method-alist} with default method 3920added to @code{tramp-default-method-alist} with default method
3922@option{ftp} @xref{Default Method}. These settings shouldn't be 3921@option{ftp} @xref{Default Method}. These settings shouldn't be
3923touched for proper working of the @value{emacsname} package system. 3922touched for proper working of the @value{emacsname} package system.
3924 3923
3925The syntax for unified filenames is described in the @value{tramp} manual 3924The syntax for unified file names is described in the @value{tramp} manual
3926for @value{emacsothername}. 3925for @value{emacsothername}.
3927@end ifset 3926@end ifset
3928@end itemize 3927@end itemize
@@ -3955,7 +3954,5 @@ for @value{emacsothername}.
3955@c shells. 3954@c shells.
3956@c * Explain how tramp.el works in principle: open a shell on a remote 3955@c * Explain how tramp.el works in principle: open a shell on a remote
3957@c host and then send commands to it. 3956@c host and then send commands to it.
3958@c * Use `filename' resp. `file name' consistently.
3959@c * Use `host' resp. `machine' consistently.
3960@c * Consistent small or capitalized words especially in menus. 3957@c * Consistent small or capitalized words especially in menus.
3961@c * Make a unique declaration of @trampfn. 3958@c * Make a unique declaration of @trampfn.