emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/man/tramp.texi


From: Kai Großjohann
Subject: [Emacs-diffs] Changes to emacs/man/tramp.texi
Date: Sun, 14 Jul 2002 10:06:58 -0400

Index: emacs/man/tramp.texi
diff -c emacs/man/tramp.texi:1.6 emacs/man/tramp.texi:1.7
*** emacs/man/tramp.texi:1.6    Sat Jul 13 14:03:55 2002
--- emacs/man/tramp.texi        Sun Jul 14 10:06:58 2002
***************
*** 10,15 ****
--- 10,16 ----
  
  
  @c Entries for @command{install-info} to use
+ @dircategory Emacs
  @direntry
  * TRAMP: (tramp).                Transparent Remote Access, Multiple Protocol
                                   Emacs remote file access via rsh and rcp.
***************
*** 21,56 ****
  @end macro
  
  @c Copying permissions, et al
! @ifinfo
  This file documents @tramp{}, a remote file editing package for Emacs and
  XEmacs.
       
  Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software
  Foundation, Inc.
!      
! Permission is granted to make and distribute verbatim copies of this
! manual provided the copyright notice and this permission notice are
! preserved on all copies.
!      
! @ignore 
! Permission is granted to process this file through TeX and print the
! results, provided the printed document carries a copying permission
! notice identical to this one except for the removal of this paragraph
! (this paragraph not being relevant to the printed manual).
!    
! @end ignore
! Permission is granted to copy and distribute modified versions of this
! manual under the conditions for verbatim copying, provided also that the
! sections entitled ``Copying'' and ``GNU General Public License'' are
! included exactly as in the original, and provided that the entire
! resulting derived work is distributed under the terms of a permission
! notice identical to this one.
!      
! Permission is granted to copy and distribute translations of this manual
! into another language, under the above conditions for modified versions,
! except that this permission notice may be stated in a translation
! approved by the Free Software Foundation.
! @end ifinfo
  
  @tex
  
--- 22,54 ----
  @end macro
  
  @c Copying permissions, et al
! @copying
  This file documents @tramp{}, a remote file editing package for Emacs and
  XEmacs.
       
  Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software
  Foundation, Inc.
! 
! @quotation     
! Permission is granted to copy, distribute and/or modify this document
! under the terms of the GNU Free Documentation License, Version 1.1 or
! any later version published by the Free Software Foundation; with no
! Invariant Sections, with the Front-Cover texts being ``A GNU
! Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
! license is included in the section entitled ``GNU Free Documentation
! License'' in the Emacs manual.
! 
! (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
! this GNU Manual, like GNU software.  Copies published by the Free
! Software Foundation raise funds for GNU development.''
! 
! This document is part of a collection distributed under the GNU Free
! Documentation License.  If you want to distribute this document
! separately from the collection, you can do so by adding a copy of the
! license to the document, as described in section 6 of the license.
! @end quotation
! @end copying
! 
  
  @tex
  
***************
*** 61,97 ****
  @author based on documentation by Kai address@hidden
  @page
  
- @vskip 0pt plus 1filll
- Permission is granted to make and distribute verbatim copies of this
- manual provided the copyright notice and this permission notice are
- preserved on all copies.
-      
- Permission is granted to copy and distribute modified versions of this
- manual under the conditions for verbatim copying, provided also that the
- sections entitled ``Copying'' and ``GNU General Public License'' are
- included exactly as in the original, and provided that the entire
- resulting derived work is distributed under the terms of a permission
- notice identical to this one.
-      
- Permission is granted to copy and distribute translations of this manual
- into another language, under the above conditions for modified versions,
- except that this permission notice may be stated in a translation
- approved by the Free Software Foundation.
- 
  @end titlepage
  @page
  
  @end tex
  
  @ifnottex
! @node Top, Copying, (dir), (dir)
  @top @tramp{} User Manual
  
  @tramp{} stands for `Transparent Remote (file) Access, Multiple
  Protocol'.  This package provides remote file editing, similar to
! @cite{ange-ftp} and @cite{EFS}.
  
! The difference is that ange-ftp uses FTP to transfer files between the
  local and the remote host, whereas @tramp{} uses a combination of
  @command{rsh} and @command{rcp} or other work-alike programs, such as
  @command{ssh}/@command{scp}.
--- 59,78 ----
  @author based on documentation by Kai address@hidden
  @page
  
  @end titlepage
  @page
  
  @end tex
  
  @ifnottex
! @node Top, Overview, (dir), (dir)
  @top @tramp{} User Manual
  
  @tramp{} stands for `Transparent Remote (file) Access, Multiple
  Protocol'.  This package provides remote file editing, similar to
! @cite{Ange-FTP} and @cite{EFS}.
  
! The difference is that Ange-FTP uses FTP to transfer files between the
  local and the remote host, whereas @tramp{} uses a combination of
  @command{rsh} and @command{rcp} or other work-alike programs, such as
  @command{ssh}/@command{scp}.
***************
*** 120,126 ****
  @end ifnottex
  
  @menu
- * Copying::                     @tramp{} Copying conditions.
  * Overview::                    What @tramp{} can and cannot do.
  
  For the end user:
--- 101,106 ----
***************
*** 177,244 ****
  @end detailmenu
  @end menu
  
- @node Copying
- @chapter @tramp{} Copying conditions
- 
- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
- 
- tramp.el is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2, or (at your option) any later
- version.
- 
- tramp.el is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
- 
- You should have received a copy of the GNU General Public License along
- with GNU Emacs; see the file COPYING. If not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- USA.
- 
  
  @node Overview
  @chapter An overview of @tramp
  
! After the installation of @tramp{} into your Emacs, you will be able to
! access files on remote machines as though they were local. Access to the
! remote file system for editing files, version control, and
  @command{dired} are transparently enabled.
  
  Your access to the remote machine can be with the @command{rsh},
  @command{rlogin}, @command{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 @command{ssh} connections out of the
! box, one of the more common uses of the package. This allows relatively
! secure access to machines, especially if @command{ftp} access is
! disabled.
! 
! 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
! machine temporarily.
! 
! @tramp{} can transfer files between the machines in a variety of ways. The
! details are easy to select, depending on your needs and the machines in
! question.
! 
! The fastest transfer methods rely on a remote file transfer package such
! as @command{rcp}, @command{scp} or @command{rsync}. The use of these
! methods is only possible if the file copy command does not ask for a
! password for the remote machine.
  
  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 @command{mimencode} or @command{uuencode} tools are
! available on the remote machine.
! 
! Within these limitations, @tramp{} is quite powerful. It is worth noting
! that, as of the time of writing, it is far from a polished end-user
! product. For a while yet you should expect to run into rough edges and
! problems with the code now and then.
  
  It is finished enough that the developers use it for day to day work but
  the installation and setup can be a little difficult to master, as can
--- 157,206 ----
  @end detailmenu
  @end menu
  
  
  @node Overview
  @chapter An overview of @tramp
+ @cindex overview
  
! After the installation of @tramp{} into your Emacs, you will be able
! to access files on remote machines as though they were local.  Access
! to the remote file system for editing files, version control, and
  @command{dired} are transparently enabled.
  
  Your access to the remote machine can be with the @command{rsh},
  @command{rlogin}, @command{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 @command{ssh} connections out of the
! box, one of the more common uses of the package.  This allows
! relatively secure access to machines, especially if @command{ftp}
! access is disabled.
! 
! 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 machine temporarily.
! 
! @tramp{} can transfer files between the machines in a variety of ways.
! The details are easy to select, depending on your needs and the
! machines in question.
! 
! The fastest transfer methods (for large files) rely on a remote file
! transfer package such as @command{rcp}, @command{scp} or
! @command{rsync}.  The use of these methods is only possible if the
! file copy command does not ask for a password for the remote machine.
  
  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 @command{mimencode} or @command{uuencode} tools
! are available on the remote machine.  These methods are generally
! faster for small files.
! 
! Within these limitations, @tramp{} is quite powerful.  It is worth
! noting that, as of the time of writing, it is far from a polished
! end-user product.  For a while yet you should expect to run into rough
! edges and problems with the code now and then.
  
  It is finished enough that the developers use it for day to day work but
  the installation and setup can be a little difficult to master, as can
***************
*** 250,255 ****
--- 212,218 ----
  
  
  @subsubheading Behind the scenes
+ @cindex behind the scenes
  
  This section tries to explain what goes on behind the scenes when you
  access a remote file through @tramp{}.
***************
*** 261,271 ****
  
  @itemize
  @item
! @tramp{} discovers that it needs a connection to the host. So it invokes
! @command{telnet HOST} or @command{rsh HOST -l USER} or a similar tool to
! connect to the remote host. Communication with this process happens
! through an Emacs buffer, that is, the output from the remote end goes
! into a buffer.
  
  @item
  The remote host may prompt for a login name (for @command{telnet}).  The
--- 224,234 ----
  
  @itemize
  @item
! @tramp{} discovers that it needs a connection to the host.  So it
! invokes @samp{telnet @var{host}} or @samp{rsh @var{host} -l
! @var{user}} or a similar tool to connect to the remote host.
! Communication with this process happens through an Emacs buffer, that
! is, the output from the remote end goes into a buffer.
  
  @item
  The remote host may prompt for a login name (for @command{telnet}).  The
***************
*** 297,303 ****
  from the remote host.  Now @tramp{} invokes @command{/bin/sh} because
  Bourne shells and C shells have different command
  address@hidden @command{/bin/sh} will fail if your login
! shell doesn't recognize @command{exec /bin/sh} as a valid command.
  Maybe you use the Scheme shell @address@hidden
  
  After the Bourne shell has come up, @tramp{} sends a few commands to
--- 260,266 ----
  from the remote host.  Now @tramp{} invokes @command{/bin/sh} because
  Bourne shells and C shells have different command
  address@hidden @command{/bin/sh} will fail if your login
! shell doesn't recognize @samp{exec /bin/sh} as a valid command.
  Maybe you use the Scheme shell @address@hidden
  
  After the Bourne shell has come up, @tramp{} sends a few commands to
***************
*** 323,334 ****
  
  See above for an explanation of how @tramp{} transfers the file contents.
  
! For inline transfers, @tramp{} issues a command like @command{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 out-of-band transfers, @tramp{} issues a command like @command{rcp
  user@@host:/path/to/remote/file /tmp/tramp.4711} and then reads the local
  temporary file @file{/tmp/tramp.4711} into a buffer and deletes the
  temporary file.
--- 286,297 ----
  
  See above for an explanation of how @tramp{} transfers the file contents.
  
! For inline transfers, @tramp{} issues a command like @samp{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 out-of-band transfers, @tramp{} issues a command like @samp{rcp
  user@@host:/path/to/remote/file /tmp/tramp.4711} and then reads the local
  temporary file @file{/tmp/tramp.4711} into a buffer and deletes the
  temporary file.
***************
*** 352,365 ****
  @c For the end user
  @node Obtaining @tramp{}
  @chapter Obtaining @tramp{}.
  
  @tramp{} is freely available on the Internet and the latest release may be
  downloaded from
  @uref{ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/tramp.tar.gz}. This
  release includes the full documentation and code for @tramp{}, suitable
! for installation.
  
! For the especially brave, @tramp{} is available from CVS. The CVS version
  is the latest version of the code and may contain incomplete features or
  new issues. Use these versions at your own risk.
  
--- 315,332 ----
  @c For the end user
  @node Obtaining @tramp{}
  @chapter Obtaining @tramp{}.
+ @cindex obtaining Tramp
  
  @tramp{} is freely available on the Internet and the latest release may be
  downloaded from
  @uref{ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/tramp.tar.gz}. This
  release includes the full documentation and code for @tramp{}, suitable
! for installation.  But Emacs (21.4 or later) includes @tramp{}
! already, and there is a @tramp{} package for XEmacs, as well.  So
! maybe it is easier to just use those.  But if you want the bleeding
! edge, read address@hidden
  
! For the especially brave, @tramp{} is available from CVS.  The CVS version
  is the latest version of the code and may contain incomplete features or
  new issues. Use these versions at your own risk.
  
***************
*** 392,415 ****
  
  @node History
  @chapter History of @tramp{}
  
  Development was started end of November 1998.  The package was called
! `rssh.el', back then.  It only provided one method to access a file,
! using @command{ssh} to log in to a remote host and using @command{scp}
! to transfer the file contents.  After a while, the name was changed to
! `rcp.el', and now it's @tramp{}.  Along the way, many more methods for
! getting a remote shell and for transferring the file contents were
! added.  Support for VC was added.
! 
! The most recent addition of a major feature was the multi-hop methods
! added in April 2000.
  
  
  @node Installation
  @chapter Installing @tramp{} into Emacs or XEmacs
  
! Installing @tramp{} into your Emacs or XEmacs is a relatively easy
! process, at least compared to rebuilding your machine from scratch. ;)
  
  Seriously though, the installation should be a fairly simple matter.
  
--- 359,388 ----
  
  @node History
  @chapter History of @tramp{}
+ @cindex history
+ @cindex development history
  
  Development was started end of November 1998.  The package was called
! @file{rssh.el}, back then.  It only provided one method to access a
! file, using @command{ssh} to log in to a remote host and using
! @command{scp} to transfer the file contents.  After a while, the name
! was changed to @file{rcp.el}, and now it's @tramp{}.  Along the way,
! many more methods for getting a remote shell and for transferring the
! file contents were added.  Support for VC was added.
! 
! The most recent addition of major features were the multi-hop methods
! added in April 2000 and the unification of @tramp{} and Ange-FTP
! filenames in July 2002.
  
  
  @node Installation
  @chapter Installing @tramp{} into Emacs or XEmacs
+ @cindex installation
  
! If you use the version that comes with your Emacs or the XEmacs
! package, the following information is not necessary.  Installing
! @tramp{} into your Emacs or XEmacs is a relatively easy process, at
! least compared to rebuilding your machine from scratch. ;)
  
  Seriously though, the installation should be a fairly simple matter.
  
***************
*** 438,449 ****
  commands, don't dispare.  You can still byte compile the
  @file{*.el} files by opening emacs in @command{dired}
  (@command{C-x d}) mode, at @file{~/tramp/lisp}.  Mark the lisp
! files with @command{m}, then press @command{B} to byte compile
  your selections.
  
  Something similar can be done to create the info manual.  
  Just cd to @file{~/emacs/tramp/texi} and load the @file{tramp.texi}
! file in emacs.  Then press @command{M-x makeinfo-buffer <RET>}
  to generate @file{tramp.info}.
  @end example     
  
--- 411,422 ----
  commands, don't dispare.  You can still byte compile the
  @file{*.el} files by opening emacs in @command{dired}
  (@command{C-x d}) mode, at @file{~/tramp/lisp}.  Mark the lisp
! files with @kbd{m}, then press @kbd{B} to byte compile
  your selections.
  
  Something similar can be done to create the info manual.  
  Just cd to @file{~/emacs/tramp/texi} and load the @file{tramp.texi}
! file in emacs.  Then press @kbd{M-x makeinfo-buffer <RET>}
  to generate @file{tramp.info}.
  @end example     
  
***************
*** 467,477 ****
  On systems using `gnu' @command{install-info}, the
  @command{install-info} syntax is very direct and simple.  One can 
  cd to @file{~/emacs/tramp/texi} and type:
!     @command{install-info tramp.info dir}
  and a @file{dir} file will be created with the @tramp{}
  entry.  The info reader will know how to interpret it, but must
  be told where to find it (see below).  If you want anything fancier
! you'll need to look through @command{man install-info}.
  
  Debian gnu/linux doesn't default to `gnu' @command{install-info} and
  uses its own version.  This version does not create a @file{dir} file
--- 440,450 ----
  On systems using `gnu' @command{install-info}, the
  @command{install-info} syntax is very direct and simple.  One can 
  cd to @file{~/emacs/tramp/texi} and type:
!     @kbd{install-info tramp.info dir}
  and a @file{dir} file will be created with the @tramp{}
  entry.  The info reader will know how to interpret it, but must
  be told where to find it (see below).  If you want anything fancier
! you'll need to look through @kbd{man install-info}.
  
  Debian gnu/linux doesn't default to `gnu' @command{install-info} and
  uses its own version.  This version does not create a @file{dir} file
***************
*** 486,492 ****
  Once a @file{dir} file is in place, this command will make the entry.
       install-info --infodir=. tramp.info
  If you want it in a specific category
!    (see @command{man install-info} for further details)
  @end example
  
  If the environment variable @env{INFOPATH} is set, add the directory
--- 459,465 ----
  Once a @file{dir} file is in place, this command will make the entry.
       install-info --infodir=. tramp.info
  If you want it in a specific category
!    (see @kbd{man install-info} for further details)
  @end example
  
  If the environment variable @env{INFOPATH} is set, add the directory
***************
*** 501,507 ****
  @end itemize
  
  
! For XEmacs users, the package @command{fsf-compat} must be installed.
  For details on package installation, see @ref{Packages, , ,xemacs}.
  @ifhtml
  (If the previous link doesn't work, try the XEmacs documentation at
--- 474,480 ----
  @end itemize
  
  
! For XEmacs users, the package @file{fsf-compat} must be installed.
  For details on package installation, see @ref{Packages, , ,xemacs}.
  @ifhtml
  (If the previous link doesn't work, try the XEmacs documentation at
***************
*** 511,529 ****
  
  @node Configuration
  @chapter Configuring @tramp{} for use
  
  @tramp{} is (normally) fully functional when it is initially
! installed. It is initially configured to use the @command{rsh} and
! @command{rcp} programs to connect to the remote host.
  
  On some hosts, there are problems with opening a connection.  These are
  related to the behavior of the remote shell.  See @xref{Remote shell
  setup}, for details on this.
  
! If you do not wish to use these commands to connect to the remote host,
! you should change the default connection and transfer method that @tramp
! uses. There are several different methods that @tramp{} can use to
! connect to remote machines and transfer files (@pxref{Connection types}).
  
  
  @menu
--- 484,507 ----
  
  @node Configuration
  @chapter Configuring @tramp{} for use
+ @cindex configuration
  
+ @cindex default configuration
  @tramp{} is (normally) fully functional when it is initially
! installed.  It is initially configured to use the @command{sh} program
! to connect to the remote host and to use base-64 encoding (on the
! remote host, via @command{mimencode}, and on the local host via the
! built-in support for base-64 encoding in Emacs).
  
  On some hosts, there are problems with opening a connection.  These are
  related to the behavior of the remote shell.  See @xref{Remote shell
  setup}, for details on this.
  
! If you do not wish to use these commands to connect to the remote
! host, you should change the default connection and transfer method
! that @tramp uses.  There are several different methods that @tramp{}
! can use to connect to remote machines and transfer files
! (@pxref{Connection types}).
  
  
  @menu
***************
*** 541,549 ****
  
  @node Connection types
  @section Types of connections made to remote machines.
  
  There are two basic types of transfer methods, each with its own
! advantages and limitations. Both types of connection make use of a
  remote shell access program such as @command{rsh}, @command{ssh} or
  @command{telnet} to connect to the remote machine.
  
--- 519,528 ----
  
  @node Connection types
  @section Types of connections made to remote machines.
+ @cindex connection types, overview
  
  There are two basic types of transfer methods, each with its own
! advantages and limitations.  Both types of connection make use of a
  remote shell access program such as @command{rsh}, @command{ssh} or
  @command{telnet} to connect to the remote machine.
  
***************
*** 552,568 ****
  the local machine. It is only when visiting files that the methods
  differ.
  
! Loading or saving a remote file requires that the content of the file be
! transfered between the two machines. The content of the file can be
! transfered over the same connection used to log in to the remote machine
! or the file can be transfered through another connection using a remote
! copy program such as @command{rcp}, @command{scp} or @command{rsync}.
! The former are called @dfn{inline methods}, the latter are called
! @dfn{external transfer methods}.
  
  The performance of the external transfer methods is generally better
! than that of the inline methods.  This is caused by the need to encode
! and decode the data when transferring inline.
  
  The one exception to this rule are the @command{scp} based transfer
  methods.  While these methods do see better performance when actually
--- 531,556 ----
  the local machine. It is only when visiting files that the methods
  differ.
  
! @cindex inline methods
! @cindex external transfer methods
! @cindex external methods
! @cindex out-of-band methods
! @cindex methods, inline
! @cindex methods, external transfer
! @cindex methods, out-of-band
! Loading or saving a remote file requires that the content of the file
! be transfered between the two machines. The content of the file can be
! transfered over the same connection used to log in to the remote
! machine or the file can be transfered through another connection using
! a remote copy program such as @command{rcp}, @command{scp} or
! @command{rsync}.  The former are called @dfn{inline methods}, the
! latter are called @dfn{out-of-band methods} or @dfn{external transfer
! methods} (@dfn{external methods} for short).
  
  The performance of the external transfer methods is generally better
! than that of the inline methods, at least for large files.  This is
! caused by the need to encode and decode the data when transferring
! inline.
  
  The one exception to this rule are the @command{scp} based transfer
  methods.  While these methods do see better performance when actually
***************
*** 574,579 ****
--- 562,569 ----
  If you cannot perform remote copies without a password, you will need to
  use an inline transfer method to work with @tramp{}.
  
+ @cindex multi-hop methods
+ @cindex methods, multi-hop
  A variant of the inline methods are the @dfn{multi-hop methods}.
  These methods allow you to connect a remote host using a number `hops',
  each of which connects to a different host.  This is useful if you are
***************
*** 583,588 ****
--- 573,580 ----
  
  @node Inline methods
  @section Inline methods
+ @cindex inline methods
+ @cindex methods, inline
  
  The inline methods in @tramp{} are quite powerful and can work in
  situations where you cannot use an external transfer program to connect.
***************
*** 592,614 ****
  hosts, see below.)
  
  These methods depend on the existence of a suitable encoding and
! decoding command on remote machine. Locally, @tramp{} may be able to use
  features of Emacs to decode and encode the files or it may require
  access to external commands to perform that task.
  
! @tramp{} supports the use of @command{uuencode} to transfer files. This is
! @emph{not} recommended. The @command{uuencode} and @command{uudecode}
! commands are not well standardized and may not function correctly or at
! all on some machines, notably AIX and IRIX. These systems do not work
! with @command{uuencode} at all.  (But do see the note about AIX in the
! documentation for @var{tramp-methods}.)
  
  In summary, if possible use the @command{mimencode} methods to transfer
  the data base64 encoded. This has the advantage of using a built-in
  command in every modern Emacs, improving performance.
  
! @itemize
  @item @option{rm}  ---  @command{rsh} with @command{mimencode}
  
  Connect to the remote host with @command{rsh} and use base64 encoding to
  transfer files between the machines.
--- 584,612 ----
  hosts, see below.)
  
  These methods depend on the existence of a suitable encoding and
! decoding command on remote machine.  Locally, @tramp{} may be able to use
  features of Emacs to decode and encode the files or it may require
  access to external commands to perform that task.
  
! @cindex uuencode
! @tramp{} supports the use of @command{uuencode} to transfer files.
! This is @emph{not} recommended.  The @command{uuencode} and
! @command{uudecode} commands are not well standardized and may not
! function correctly or at all on some machines, notably AIX and IRIX.
! These systems do not work with @command{uuencode} at all.  (But do see
! the note about AIX in the documentation for @var{tramp-methods}.)
  
+ @cindex mimencode
+ @cindex base-64 encoding
  In summary, if possible use the @command{mimencode} methods to transfer
  the data base64 encoded. This has the advantage of using a built-in
  command in every modern Emacs, improving performance.
  
! @table @asis
  @item @option{rm}  ---  @command{rsh} with @command{mimencode}
+ @cindex method rm
+ @cindex rm method
+ @cindex method using rsh
  
  Connect to the remote host with @command{rsh} and use base64 encoding to
  transfer files between the machines.
***************
*** 619,624 ****
--- 617,628 ----
  
  
  @item @option{sm}  ---  @command{ssh} with @command{mimencode}
+ @cindex method sm
+ @cindex sm method
+ @cindex method using ssh
+ @cindex ssh
+ @cindex mimencode
+ @cindex base-64 encoding
  
  Connect to the remote host with @command{ssh} and use base64 encoding to
  transfer files between the machines.
***************
*** 638,643 ****
--- 642,653 ----
  
  
  @item @option{tm}  ---  @command{telnet} with @command{mimencode}
+ @cindex method tm
+ @cindex tm method
+ @cindex method using telnet
+ @cindex telnet
+ @cindex mimencode
+ @cindex base-64 encoding
  
  Connect to the remote host with @command{telnet} and use base64 encoding
  to transfer files between the machines.
***************
*** 647,652 ****
--- 657,667 ----
  
  
  @item @option{ru}  ---  @command{rsh} with @command{uuencode}
+ @cindex method ru
+ @cindex ru method
+ @cindex method using rsh
+ @cindex rsh
+ @cindex uuencode
  
  Connect to the remote host with @command{rsh} and use the
  @command{uuencode} and @command{uudecode} commands to transfer files
***************
*** 654,659 ****
--- 669,679 ----
  
  
  @item @option{su}  ---  @command{ssh} with @command{uuencode}
+ @cindex method su
+ @cindex su method
+ @cindex method using ssh
+ @cindex ssh
+ @cindex uuencode
  
  Connect to the remote host with @command{ssh} and use the
  @command{uuencode} and @command{uudecode} commands to transfer files
***************
*** 666,675 ****
  Note that this method does not invoke the @command{su} program, see
  below for methods which use that.
  
! This supports the @command{-p} kludge.
  
  
  @item @option{tu}  ---  @command{telnet} with @command{uuencode}
  
  Connect to the remote host with @command{telnet} and use the
  @command{uuencode} and @command{uudecode} commands to transfer files
--- 686,700 ----
  Note that this method does not invoke the @command{su} program, see
  below for methods which use that.
  
! This supports the @samp{-p} kludge.
  
  
  @item @option{tu}  ---  @command{telnet} with @command{uuencode}
+ @cindex tu method
+ @cindex method tu
+ @cindex method using telnet
+ @cindex telnet
+ @cindex uuencode
  
  Connect to the remote host with @command{telnet} and use the
  @command{uuencode} and @command{uudecode} commands to transfer files
***************
*** 677,682 ****
--- 702,713 ----
  
  
  @item @option{sum} --- @command{su} with @command{mimencode}
+ @cindex method sum
+ @cindex sum method
+ @cindex method using su
+ @cindex su
+ @cindex mimencode
+ @cindex base-64 encoding
  
  This method does not connect to a remote host at all, rather it uses the
  @command{su} program to allow you to edit files as another user.  Uses
***************
*** 684,689 ****
--- 715,725 ----
  
  
  @item @option{suu} --- @command{su} with @command{uuencode}
+ @cindex method suu
+ @cindex suu method
+ @cindex method using su
+ @cindex su
+ @cindex uuencode
  
  Like @option{sum}, this uses the @command{su} program to allow you to
  edit files on the local host as another user.  Uses @command{uuencode}
***************
*** 691,696 ****
--- 727,738 ----
  
  
  @item @option{sudm} --- @command{sudo} with @command{mimencode}
+ @cindex method sudm
+ @cindex sudm method
+ @cindex method using sudo
+ @cindex sudo
+ @cindex mimencode
+ @cindex base-64 encoding
  
  This is similar to the @option{sum} method, but it uses @command{sudo}
  rather than @command{su} to become a different user.
***************
*** 702,721 ****
  
  
  @item @option{sudu} --- @command{sudo} with @command{uuencode}
  
  This is similar to the @option{suu} method, but it uses @command{sudo}
  rather than @command{su} to become a different user.
  
  
  @item @option{smx} --- @command{ssh} with @command{mimencode}
  
  As you expect, this is similar to @option{sm}, only a little
  different.  Whereas @option{sm} opens a normal interactive shell on
! the remote host, this option uses @command{ssh -t -t HOST -l USER
! /bin/sh} tp open a connection.  This is useful for users where the
! normal login shell is set up to ask them a number of questions when
! logging in.  This procedure avoids these questions, and just gives
! @tramp{} a more-or-less `standard' login shell to work with.
  
  Note that this procedure does not eliminate questions asked by
  @command{ssh} itself.  For example, @command{ssh} might ask ``Are you
--- 744,776 ----
  
  
  @item @option{sudu} --- @command{sudo} with @command{uuencode}
+ @cindex method sudu
+ @cindex sudu method
+ @cindex method using sudo
+ @cindex sudo
+ @cindex uuencode
  
  This is similar to the @option{suu} method, but it uses @command{sudo}
  rather than @command{su} to become a different user.
  
  
  @item @option{smx} --- @command{ssh} with @command{mimencode}
+ @cindex method smx
+ @cindex smx method
+ @cindex method using ssh
+ @cindex ssh
+ @cindex mimencode
+ @cindex base-64 encoding
+ @cindex Cygwin
  
  As you expect, this is similar to @option{sm}, only a little
  different.  Whereas @option{sm} opens a normal interactive shell on
! the remote host, this option uses @samp{ssh -t -t @var{host} -l
! @var{user} /bin/sh} tp open a connection.  This is useful for users
! where the normal login shell is set up to ask them a number of
! questions when logging in.  This procedure avoids these questions, and
! just gives @tramp{} a more-or-less `standard' login shell to work
! with.
  
  Note that this procedure does not eliminate questions asked by
  @command{ssh} itself.  For example, @command{ssh} might ask ``Are you
***************
*** 727,765 ****
  This is also useful for Windows users where @command{ssh}, when
  invoked from an Emacs buffer, tells them that it is not allocating a
  pseudo tty.  When this happens, the login shell is wont to not print
! any shell prompt, which confuses @tramp{} mightily.
  
! This supports the @command{-p} kludge.
  
  
  @item @option{km} --- @command{krlogin} with @command{mimencode}
  
  This method is also similar to @option{sm}.  It only uses the
  @command{krlogin -x} command to log in to the remote host.
  
  
  @item @option{plinku} --- @command{plink} with @command{uuencode}
  
  This method is mostly interesting for Windows users using the PuTTY
! implementation of SSH.  It uses @command{plink -ssh} to log in to the
  remote host.
  
  CCC: Do we have to connect to the remote host once from the command
  line to accept the SSH key?  Maybe this can be made automatic?
  
! CCC: Does @command{plink} support the @command{-p} option?  Tramp
  will support that, anyway.
  
  @item @option{plinkm} --- @command{plink} with @command{mimencode}
  
  Like @option{plinku}, but uses base64 encoding instead of uu encoding.
  
! @end itemize
  
  
  
  @node External transfer methods
  @section External transfer methods
  
  The external transfer methods operate through multiple channels, using
  the remote shell connection for many actions while delegating file
--- 782,843 ----
  This is also useful for Windows users where @command{ssh}, when
  invoked from an Emacs buffer, tells them that it is not allocating a
  pseudo tty.  When this happens, the login shell is wont to not print
! any shell prompt, which confuses @tramp{} mightily.  For reasons
! unknown, some Windows ports for @command{ssh} (maybe the Cygwin one)
! require the doubled @samp{-t} option.
  
! This supports the @samp{-p} kludge.
  
  
  @item @option{km} --- @command{krlogin} with @command{mimencode}
+ @cindex method km
+ @cindex km method
+ @cindex krlogin
+ @cindex Kerberos
+ @cindex mimencode
+ @cindex base-64 encoding
  
  This method is also similar to @option{sm}.  It only uses the
  @command{krlogin -x} command to log in to the remote host.
  
  
  @item @option{plinku} --- @command{plink} with @command{uuencode}
+ @cindex method plinku
+ @cindex plinku method
+ @cindex method using plink
+ @cindex plink
+ @cindex uuencode
  
  This method is mostly interesting for Windows users using the PuTTY
! implementation of SSH.  It uses @samp{plink -ssh} to log in to the
  remote host.
  
  CCC: Do we have to connect to the remote host once from the command
  line to accept the SSH key?  Maybe this can be made automatic?
  
! CCC: Does @command{plink} support the @samp{-p} option?  Tramp
  will support that, anyway.
  
  @item @option{plinkm} --- @command{plink} with @command{mimencode}
+ @cindex method plinkm
+ @cindex plinkm method
+ @cindex method using plink
+ @cindex plink
+ @cindex mimencode
+ @cindex base-64 encoding
  
  Like @option{plinku}, but uses base64 encoding instead of uu encoding.
  
! @end table
  
  
  
  @node External transfer methods
  @section External transfer methods
+ @cindex methods, external transfer
+ @cindex methods, out-of-band
+ @cindex external transfer methods
+ @cindex out-of-band methods
  
  The external transfer methods operate through multiple channels, using
  the remote shell connection for many actions while delegating file
***************
*** 772,777 ****
--- 850,856 ----
  to execute the transfer utility to copy files to and from the remote
  machine without any interaction.
  
+ @cindex ssh-agent
  This means that you will need to use @command{ssh-agent} if you use the
  @command{scp} program for transfers, or maybe your version of
  @command{scp} accepts a password on the command address@hidden's
***************
*** 784,791 ****
  look at the @command{ssh} based inline methods.
  
  
! @itemize
  @item @option{rcp}  ---  @command{rsh} and @command{rcp}
  
  This method uses the @command{rsh} and @command{rcp} commands to connect
  to the remote machine and transfer files. This is probably the fastest
--- 863,874 ----
  look at the @command{ssh} based inline methods.
  
  
! @table @asis
  @item @option{rcp}  ---  @command{rsh} and @command{rcp}
+ @cindex method rcp
+ @cindex rcp method
+ @cindex rcp
+ @cindex rsh
  
  This method uses the @command{rsh} and @command{rcp} commands to connect
  to the remote machine and transfer files. This is probably the fastest
***************
*** 793,798 ****
--- 876,885 ----
  
  
  @item @option{scp}  ---  @command{ssh} and @command{scp}
+ @cindex method scp
+ @cindex scp method
+ @cindex scp
+ @cindex ssh
  
  Using @command{ssh} to connect to the remote host and @command{scp} to
  transfer files between the machines is the best method for securely
***************
*** 804,816 ****
  session can begin to absorb the advantage that the lack of encoding and
  decoding presents.
  
! All the @command{ssh} based methods support the kludgy @command{-p}
  feature where you can specify a port number to connect to in the host
  name.  For example, the host name @file{host#42} tells Tramp to
! specify @command{-p 42} in the argument list for @command{ssh}.
  
  
  @item @option{rsync}  ---  @command{ssh} and @command{rsync}
  
  Using the @command{ssh} command to connect securely to the remote
  machine and the @command{rsync} command to transfer files is almost
--- 891,907 ----
  session can begin to absorb the advantage that the lack of encoding and
  decoding presents.
  
! All the @command{ssh} based methods support the kludgy @samp{-p}
  feature where you can specify a port number to connect to in the host
  name.  For example, the host name @file{host#42} tells Tramp to
! specify @samp{-p 42} in the argument list for @command{ssh}.
  
  
  @item @option{rsync}  ---  @command{ssh} and @command{rsync}
+ @cindex method rsync
+ @cindex rsync method
+ @cindex rsync
+ @cindex ssh
  
  Using the @command{ssh} command to connect securely to the remote
  machine and the @command{rsync} command to transfer files is almost
***************
*** 824,861 ****
  @command{rcp} based methods when writing to the remote system. Reading
  files to the local machine is no faster than with a direct copy. 
  
! This method supports the @command{-p} hack.
  
  
  @item @option{scpx} --- @command{ssh} and @command{scp}
  
  As you expect, this is similar to @option{scp}, only a little
! different.  Whereas @option{scp} opens a normal interactive shell on the
! remote host, this option uses @command{ssh -t -t HOST -l USER /bin/sh} to
! open a connection.  This is useful for users where the normal login
! shell is set up to ask them a number of questions when logging in.  This
! procedure avoids these questions, and just gives @tramp{} a more-or-less
! `standard' login shell to work with. 
  
  This is also useful for Windows users where @command{ssh}, when
  invoked from an Emacs buffer, tells them that it is not allocating a
  pseudo tty.  When this happens, the login shell is wont to not print
! any shell prompt, which confuses @tramp{} mightily.
  
! This method supports the @command{-p} hack.
  
  
  @item @option{pscp} --- @command{plink} and @command{pscp}
  
  This method is similar to @option{scp}, but it uses the
  @command{plink} command to connect to the remote host, and it uses
  @command{pscp} for transferring the files.  These programs are part
  of PuTTY, an SSH implementation for Windows.
  
! CCC: Does @command{plink} support the @command{-p} hack?
  
  
  @item @option{fcp} --- @command{fsh} and @command{fcp}
  
  This method is similar to @option{scp}, but it uses the @command{fsh}
  command to connect to the remote host, and it uses @command{fcp} for
--- 915,968 ----
  @command{rcp} based methods when writing to the remote system. Reading
  files to the local machine is no faster than with a direct copy. 
  
! This method supports the @samp{-p} hack.
  
  
  @item @option{scpx} --- @command{ssh} and @command{scp}
+ @cindex method scpx
+ @cindex scpx method
+ @cindex scp
+ @cindex ssh
+ @cindex Cygwin
  
  As you expect, this is similar to @option{scp}, only a little
! different.  Whereas @option{scp} opens a normal interactive shell on
! the remote host, this option uses @samp{ssh -t -t @var{host} -l
! @var{user} /bin/sh} to open a connection.  This is useful for users
! where the normal login shell is set up to ask them a number of
! questions when logging in.  This procedure avoids these questions, and
! just gives @tramp{} a more-or-less `standard' login shell to work
! with.
  
  This is also useful for Windows users where @command{ssh}, when
  invoked from an Emacs buffer, tells them that it is not allocating a
  pseudo tty.  When this happens, the login shell is wont to not print
! any shell prompt, which confuses @tramp{} mightily.  Maybe this
! applies to the Cygwin port of SSH.
  
! This method supports the @samp{-p} hack.
  
  
  @item @option{pscp} --- @command{plink} and @command{pscp}
+ @cindex method pscp
+ @cindex pscp method
+ @cindex pscp
+ @cindex plink
+ @cindex PuTTY
  
  This method is similar to @option{scp}, but it uses the
  @command{plink} command to connect to the remote host, and it uses
  @command{pscp} for transferring the files.  These programs are part
  of PuTTY, an SSH implementation for Windows.
  
! CCC: Does @command{plink} support the @samp{-p} hack?
  
  
  @item @option{fcp} --- @command{fsh} and @command{fcp}
+ @cindex method fcp
+ @cindex fcp method
+ @cindex fsh
+ @cindex fcp
  
  This method is similar to @option{scp}, but it uses the @command{fsh}
  command to connect to the remote host, and it uses @command{fcp} for
***************
*** 866,879 ****
  is called).  Note, however, that you can also use one of the inline
  methods to achieve a similar effect.
  
! This method uses the command @command{fsh HOST -l USER /bin/sh -i} to
! establish the connection, it does not work to just say @command{fsh
! HOST -l USER}.
  
! @end itemize
  
  @node Multi-hop Methods
  @section Connecting to a remote host using multiple hops
  
  Sometimes, the methods described before are not sufficient.  Sometimes,
  it is not possible to connect to a remote host using a simple command.
--- 973,993 ----
  is called).  Note, however, that you can also use one of the inline
  methods to achieve a similar effect.
  
! This method uses the command @samp{fsh @var{host} -l @var{user}
! /bin/sh -i} to establish the connection, it does not work to just say
! @command{fsh @var{host} -l @var{user}}.
! 
! There is no inline method using @command{fsh} as the multiplexing
! provided by the program is not very useful in our context.  @tramp{}
! opens just one connection to the remote host and then keeps it open,
! anyway.
  
! @end table
  
  @node Multi-hop Methods
  @section Connecting to a remote host using multiple hops
+ @cindex multi-hop methods
+ @cindex methods, multi-hop
  
  Sometimes, the methods described before are not sufficient.  Sometimes,
  it is not possible to connect to a remote host using a simple command.
***************
*** 888,930 ****
  transferred through the inline connection.  The following two multi-hop
  methods are available:
  
! @itemize
  @item @option{multi} --- base64 encoding with @command{mimencode}
  
  The file is transferred through the connection in base64 encoding.  Uses
  the @command{mimencode} program for doing encoding and decoding, but
  uses an Emacs internal implementation on the local host if available.
  
  @item @option{multiu} --- use commands @command{uuencode} and 
@command{uudecode}
  
  The file is transferred through the connection in `uu' encoding.  Uses
  the @command{uuencode} and @command{uudecode} programs for encoding and
  decoding, but uses a Lisp implementation for decoding on the local host
  if available.
  
! @end itemize
  
  Each hop consists of a @dfn{hop method} specification, a user name and a
  host name.  The following hop methods are (currently) available:
  
! @itemize
! @item @option{telnet}
  
  Uses the well-known @command{telnet} program to connect to the host.
  Whereas user name and host name are supplied in the file name, the
  user is queried for the password.
  
! @item @option{rsh}
  
  This uses @command{rsh} to connect to the host.  You do not need to
  enter a password unless @command{rsh} explicitly asks for it.
  
! @item @option{ssh}
  
  This uses @command{ssh} to connect to the host.  You might have to enter
  a password or a pass phrase.
  
! @item @option{su}
  
  This method does not actually contact a different host, but it allows
  you to become a different user on the host you're currently on.  This
--- 1002,1059 ----
  transferred through the inline connection.  The following two multi-hop
  methods are available:
  
! @table @asis
  @item @option{multi} --- base64 encoding with @command{mimencode}
+ @cindex method multi
+ @cindex multi method
+ @cindex base-64 encoding
+ @cindex mimencode
  
  The file is transferred through the connection in base64 encoding.  Uses
  the @command{mimencode} program for doing encoding and decoding, but
  uses an Emacs internal implementation on the local host if available.
  
  @item @option{multiu} --- use commands @command{uuencode} and 
@command{uudecode}
+ @cindex method multiu
+ @cindex multiu method
+ @cindex uuencode
  
  The file is transferred through the connection in `uu' encoding.  Uses
  the @command{uuencode} and @command{uudecode} programs for encoding and
  decoding, but uses a Lisp implementation for decoding on the local host
  if available.
  
! @end table
  
  Each hop consists of a @dfn{hop method} specification, a user name and a
  host name.  The following hop methods are (currently) available:
  
! @table @option
! @item telnet
! @cindex hop method telnet
! @cindex telnet hop method
  
  Uses the well-known @command{telnet} program to connect to the host.
  Whereas user name and host name are supplied in the file name, the
  user is queried for the password.
  
! @item rsh
! @cindex hop method rsh
! @cindex rsh hop method
  
  This uses @command{rsh} to connect to the host.  You do not need to
  enter a password unless @command{rsh} explicitly asks for it.
  
! @item ssh
! @cindex hop method ssh
! @cindex ssh hop method
  
  This uses @command{ssh} to connect to the host.  You might have to enter
  a password or a pass phrase.
  
! @item su
! @cindex hop method su
! @cindex su hop method
  
  This method does not actually contact a different host, but it allows
  you to become a different user on the host you're currently on.  This
***************
*** 939,956 ****
  @option{su} hop, the host name is ignored and only the user name is
  used.
  
! @item @option{sudo}
  
  This is similar to the @option{su} hop, except that it uses
  @command{sudo} rather than @command{su} to become a different user.
  
! @end itemize
  
! Some people might wish to use port forwarding with @code{ssh} or maybe
! they have to use a nonstandard port.  This can be accomplished by
! putting a stanza in @file{~/.ssh/config} for the account which specifies
! a different port number for a certain host name.  But it can also be
! accomplished within Tramp, by adding a multi-hop method.  For example:
  
  @lisp
  (add-to-list 'tramp-multi-connection-function-alist
--- 1068,1088 ----
  @option{su} hop, the host name is ignored and only the user name is
  used.
  
! @item sudo
! @cindex hop method sudo
! @cindex sudo hop method
  
  This is similar to the @option{su} hop, except that it uses
  @command{sudo} rather than @command{su} to become a different user.
  
! @end table
  
! Some people might wish to use port forwarding with @command{ssh} or
! maybe they have to use a nonstandard port.  This can be accomplished
! by putting a stanza in @file{~/.ssh/config} for the account which
! specifies a different port number for a certain host name.  But it can
! also be accomplished within Tramp, by adding a multi-hop method.  For
! example:
  
  @lisp
  (add-to-list 'tramp-multi-connection-function-alist
***************
*** 963,978 ****
  
  @node Default Method
  @section Selecting a default method
  
  When you select an appropriate transfer method for your typical usage
  you should set the variable @var{tramp-default-method} to reflect that
! choice. This variable controls which method will be used when a method
  is not specified in the @tramp{} file path.  For example:
  
  @lisp
  (setq tramp-default-method "scp")
  @end lisp
  
  External transfer methods are normally preferable to inline transfer
  methods, giving better performance. They may not be useful if you use
  many remote machines where you cannot log in without a password.
--- 1095,1132 ----
  
  @node Default Method
  @section Selecting a default method
+ @cindex default method
  
+ @vindex tramp-default-method
  When you select an appropriate transfer method for your typical usage
  you should set the variable @var{tramp-default-method} to reflect that
! choice.  This variable controls which method will be used when a method
  is not specified in the @tramp{} file path.  For example:
  
  @lisp
  (setq tramp-default-method "scp")
  @end lisp
  
+ @vindex tramp-default-method-alist
+ You can also specify different methods for certain user/host
+ combinations, via the variable @var{tramp-default-method-alist}.  For
+ example, the following two lines specify to use the @option{sm}
+ method for all user names matching @samp{john} and the @option{rsync}
+ method for all host names matching @samp{lily}.  The third line
+ specifies to use the @option{sum} method for the user @samp{root} on
+ the machine @samp{localhost}.
+ 
+ @lisp
+ (add-to-list 'tramp-default-method-alist '("" "john" "sm"))
+ (add-to-list 'tramp-default-method-alist '("lily" "" "rsync"))
+ (add-to-list 'tramp-default-method-alist
+              '("\\`root\\'" "\\`localhost\\'" "sum"))
+ @end lisp
+ 
+ @noindent
+ See the documentation for the variable
+ @var{tramp-default-method-alist} for more details.
+ 
  External transfer methods are normally preferable to inline transfer
  methods, giving better performance. They may not be useful if you use
  many remote machines where you cannot log in without a password.
***************
*** 998,1003 ****
--- 1152,1160 ----
  
  @node Customizing Methods
  @section Using Non-Standard Methods
+ @cindex customizing methods
+ @cindex using non-standard methods
+ @cindex create your own methods
  
  There is a variable @code{tramp-methods} which you can change if the
  predefined methods don't seem right.
***************
*** 1022,1027 ****
--- 1179,1185 ----
  available, they are used to improve the performance and accuracy of
  remote file access.
  
+ @vindex tramp-remote-path
  When @tramp{} connects to the remote machine, it searches for the
  programs that it can use. The variable @var{tramp-remote-path} controls
  the directories searched on the remote machine.
***************
*** 1043,1055 ****
  (require 'tramp)                @i{; @tramp{} must be loaded before this}
                                  @i{; happens.}
  
! @i{; We have @command{perl} in "/usr/local/perl"}
! (add-to-list 'tramp-remote-path "/usr/local/perl")
  @end example
  
  @node Remote shell setup
  @comment  node-name,  next,  previous,  up
  @section Remote shell setup hints
  
  As explained in the @ref{Overview} section, @tramp{} connects to the
  remote host and talks to the shell it finds there.  Of course, when you
--- 1201,1217 ----
  (require 'tramp)                @i{; @tramp{} must be loaded before this}
                                  @i{; happens.}
  
! @i{; We have @command{perl} in "/usr/local/perl/bin"}
! (add-to-list 'tramp-remote-path "/usr/local/perl/bin")
  @end example
  
  @node Remote shell setup
  @comment  node-name,  next,  previous,  up
  @section Remote shell setup hints
+ @cindex remote shell setup
+ @cindex .profile file
+ @cindex .login file
+ @cindex shell init files
  
  As explained in the @ref{Overview} section, @tramp{} connects to the
  remote host and talks to the shell it finds there.  Of course, when you
***************
*** 1079,1088 ****
  Below you find a discussion of a few things that @tramp{} does not deal
  with, and that you therefore have to set up correctly.
  
! @itemize
! @item @code{shell-prompt-pattern}
! 
  @vindex shell-prompt-pattern
  After logging in to the remote host, @tramp{} has to wait for the remote
  shell startup to finish before it can send commands to the remote
  shell.  The strategy here is to wait for the shell prompt.  In order to
--- 1241,1250 ----
  Below you find a discussion of a few things that @tramp{} does not deal
  with, and that you therefore have to set up correctly.
  
! @table @asis
! @item @var{shell-prompt-pattern}
  @vindex shell-prompt-pattern
+ 
  After logging in to the remote host, @tramp{} has to wait for the remote
  shell startup to finish before it can send commands to the remote
  shell.  The strategy here is to wait for the shell prompt.  In order to
***************
*** 1097,1102 ****
--- 1259,1266 ----
  not at the end of the buffer.
  
  @item @code{tset} and other questions
+ @cindex Unix command tset
+ @cindex tset Unix command
  
  Some people invoke the @code{tset} program from their shell startup
  scripts which asks the user about the terminal type of the shell.  Maybe
***************
*** 1114,1127 ****
  The variable @code{tramp-terminal-type} can be used to change this value
  @code{dumb}.
  
! @end itemize
  
  
  @node Windows setup hints
  @section Issues with Cygwin ssh
  
  This section needs a lot of work!  Please help.
  
  If you use the Cygwin installation of ssh (you have to explicitly select
  it in the installer), then it should work out of the box to just select
  @code{smx} as the connection method.  You can find information about
--- 1278,1294 ----
  The variable @code{tramp-terminal-type} can be used to change this value
  @code{dumb}.
  
! @end table
  
  
  @node Windows setup hints
  @section Issues with Cygwin ssh
+ @cindex Cygwin
  
  This section needs a lot of work!  Please help.
  
+ @cindex method smx with Cygwin
+ @cindex smx method with Cygwin
  If you use the Cygwin installation of ssh (you have to explicitly select
  it in the installer), then it should work out of the box to just select
  @code{smx} as the connection method.  You can find information about
***************
*** 1130,1143 ****
  
  @node Usage
  @chapter Using @tramp
  
  Once you have installed @tramp{} it will operate fairly transparently. You
  will be able to access files on any remote machine that you can log in
  to as though they were local.
  
  Files are specified to @tramp{} using a formalized syntax specifying the
! details of the system to connect to. This is similar to the syntax used
! by the @command{EFS} and @command{ange-ftp} packages.
  
  
  @menu
--- 1297,1311 ----
  
  @node Usage
  @chapter Using @tramp
+ @cindex using @tramp
  
  Once you have installed @tramp{} it will operate fairly transparently. You
  will be able to access files on any remote machine that you can log in
  to as though they were local.
  
  Files are specified to @tramp{} using a formalized syntax specifying the
! details of the system to connect to.  This is similar to the syntax used
! by the @command{EFS} and @command{Ange-FTP} packages.
  
  
  @menu
***************
*** 1149,1154 ****
--- 1317,1324 ----
  
  @node Filename Syntax
  @section @tramp{} filename conventions
+ @cindex filename syntax
+ @cindex filename examples
  
  On Emacs, the Ange-FTP and Tramp filenames use a unified syntax.  On
  XEmacs, EFS and Tramp use different formats for the filenames.
***************
*** 1227,1232 ****
--- 1397,1404 ----
  
  @node Multi-hop filename syntax
  @section Multi-hop filename conventions
+ @cindex filename syntax for multi-hop files
+ @cindex multi-hop filename syntax
  
  The syntax of multi-hop file names is necessarily slightly different
  than the syntax of other @tramp{} file names.  Here's an example multi-hop
***************
*** 1271,1276 ****
--- 1443,1450 ----
  
  @node Dired
  @section Dired and filename completion
+ @cindex dired
+ @cindex filename completion
  
  @tramp{} works transparently with dired, enabling you to use this powerful
  file management tool to manage files on any machine you have access to
***************
*** 1281,1297 ****
  stage.
  
  As filename completion needs to fetch the listing of files from the
! remote machine, this feature is sometimes fairly slow. As @tramp{} does not
  yet cache the results of directory listing, there is no gain in
  performance the second time you complete filenames.
  
  If you need to browse a directory tree, Dired is a better choice, at
! present, than filename completion. Dired has its own cache mechanism
  and will only fetch the directory listing once.
  
  
  @node Bug Reports
  @chapter Reporting Bugs and Problems
  
  Bugs and problems with @tramp{} are actively worked on by the development
  team. Feature requests and suggestions are also more than welcome.
--- 1455,1472 ----
  stage.
  
  As filename completion needs to fetch the listing of files from the
! remote machine, this feature is sometimes fairly slow.  As @tramp{} does not
  yet cache the results of directory listing, there is no gain in
  performance the second time you complete filenames.
  
  If you need to browse a directory tree, Dired is a better choice, at
! present, than filename completion.  Dired has its own cache mechanism
  and will only fetch the directory listing once.
  
  
  @node Bug Reports
  @chapter Reporting Bugs and Problems
+ @cindex bug reports
  
  Bugs and problems with @tramp{} are actively worked on by the development
  team. Feature requests and suggestions are also more than welcome.
***************
*** 1322,1330 ****
  
  @node Frequently Asked Questions
  @chapter Frequently Asked Questions
  
  @itemize @bullet
! @item Where can I get the latest @tramp{}?
  
  @tramp{} is available at
  @uref{ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/tramp.tar.gz}.
--- 1497,1508 ----
  
  @node Frequently Asked Questions
  @chapter Frequently Asked Questions
+ @cindex frequently asked questions
+ @cindex FAQ
  
  @itemize @bullet
! @item
! Where can I get the latest @tramp{}?
  
  @tramp{} is available at
  @uref{ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/tramp.tar.gz}.
***************
*** 1332,1338 ****
  @uref{https://savannah.gnu.org/projects/tramp/}.
  
  
! @item Which systems does it work on?
  
  The package has been used successfully on Emacs 20 and Emacs 21, as well
  as XEmacs 21.  XEmacs 20 is more problematic, see the notes in
--- 1510,1517 ----
  @uref{https://savannah.gnu.org/projects/tramp/}.
  
  
! @item
! Which systems does it work on?
  
  The package has been used successfully on Emacs 20 and Emacs 21, as well
  as XEmacs 21.  XEmacs 20 is more problematic, see the notes in
***************
*** 1356,1362 ****
  Emacs?  I think there was some issue with @command{ssh}?
  
  
! @item I can't stop EFS starting with XEmacs
  
  Not all the older versions of @tramp{} supported XEmacs correctly. The
  first thing to do is to make sure that you have the latest version of
--- 1535,1542 ----
  Emacs?  I think there was some issue with @command{ssh}?
  
  
! @item
! I can't stop EFS starting with XEmacs
  
  Not all the older versions of @tramp{} supported XEmacs correctly. The
  first thing to do is to make sure that you have the latest version of
***************
*** 1369,1375 ****
  wrong.
  
  
! @item File name completion does not work with @tramp{}
  
  When you log in to the remote machine, do you see the output of
  @command{ls} in color? If so, this may be the cause of your problems.
--- 1549,1556 ----
  wrong.
  
  
! @item
! File name completion does not work with @tramp{}
  
  When you log in to the remote machine, do you see the output of
  @command{ls} in color? If so, this may be the cause of your problems.
***************
*** 1387,1393 ****
  filename completion, report a bug to the @tramp{} developers.
  
  
! @item File name completion does not work in large directories
  
  @tramp{} uses globbing for some operations.  (Globbing means to use the
  shell to expand wildcards such as `*.c'.)  This might create long
--- 1568,1575 ----
  filename completion, report a bug to the @tramp{} developers.
  
  
! @item
! File name completion does not work in large directories
  
  @tramp{} uses globbing for some operations.  (Globbing means to use the
  shell to expand wildcards such as `*.c'.)  This might create long
***************
*** 1396,1415 ****
  itself.
  
  If you have a large directory on the remote end, you may wish to execute
! a command like @command{ls -d * ..?* > /dev/null} and see if it hangs.
  Note that you must first start the right shell, which might be
  @command{/bin/sh}, @command{ksh} or @command{bash}, depending on which
  of those supports tilde expansion.
  
  
! @item What kinds of systems does @tramp{} work on
  
  @tramp{} really expects the remote system to be a Unix-like system.  The
  local system should preferably be Unix-like, as well, but @tramp{} might
  work on NT with some tweaking.
  
  
! @item How can I get notified when @tramp{} file transfers are complete?
  
  The following snippet can be put in your @file{~/.emacs} file.  It makes
  Emacs beep after reading from or writing to the remote host.
--- 1578,1599 ----
  itself.
  
  If you have a large directory on the remote end, you may wish to execute
! a command like @samp{ls -d * ..?* > /dev/null} and see if it hangs.
  Note that you must first start the right shell, which might be
  @command{/bin/sh}, @command{ksh} or @command{bash}, depending on which
  of those supports tilde expansion.
  
  
! @item
! What kinds of systems does @tramp{} work on
  
  @tramp{} really expects the remote system to be a Unix-like system.  The
  local system should preferably be Unix-like, as well, but @tramp{} might
  work on NT with some tweaking.
  
  
! @item
! How can I get notified when @tramp{} file transfers are complete?
  
  The following snippet can be put in your @file{~/.emacs} file.  It makes
  Emacs beep after reading from or writing to the remote host.
***************
*** 1433,1440 ****
  @end lisp
  
  
! @item There's this @file{~/.sh_history} file on the remote host which
!   keeps growing and growing.  What's that?
  
  Sometimes, @tramp{} starts @code{ksh} on the remote host for tilde
  expansion.  Maybe @code{ksh} saves the history by default.  @tramp{}
--- 1617,1625 ----
  @end lisp
  
  
! @item
! There's this @file{~/.sh_history} file on the remote host which keeps
! growing and growing.  What's that?
  
  Sometimes, @tramp{} starts @code{ksh} on the remote host for tilde
  expansion.  Maybe @code{ksh} saves the history by default.  @tramp{}
***************
*** 1460,1466 ****
  @node Version Control
  @chapter The inner workings of remote version control
  
! Unlike EFS and ange-ftp, @tramp{} has full shell access to the remote
  machine. This makes it possible to provide version control for files
  accessed under @tramp{}.
  
--- 1645,1651 ----
  @node Version Control
  @chapter The inner workings of remote version control
  
! Unlike EFS and Ange-FTP, @tramp{} has full shell access to the remote
  machine. This makes it possible to provide version control for files
  accessed under @tramp{}.
  



reply via email to

[Prev in Thread] Current Thread [Next in Thread]