[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master e5b98e0: Merge from origin/emacs-26
From: |
Michael Albinus |
Subject: |
[Emacs-diffs] master e5b98e0: Merge from origin/emacs-26 |
Date: |
Tue, 29 May 2018 06:46:04 -0400 (EDT) |
branch: master
commit e5b98e02731556f891003d10ab6fc76e6b1c3dcb
Merge: b320753 13963a3
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>
Merge from origin/emacs-26
13963a3a5c * doc/misc/tramp.texi (All): Use @code instead of @option ...
6e5f19ada4 Fix Bug#31605
---
doc/misc/tramp.texi | 180 +++++++++++++++++++++++++++++++++++-----------------
1 file changed, 121 insertions(+), 59 deletions(-)
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 5dd1a2c..c34341b 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -682,7 +682,7 @@ remote host, and then tries that program for encoding and
decoding.
@vindex tramp-inline-compress-start-size
To increase transfer speeds for large text files, use compression
before encoding. The user option
address@hidden specifies the file size for
address@hidden specifies the file size for
such optimization.
@table @asis
@@ -1023,17 +1023,18 @@ can.
@cindex android (with @option{adb} method)
@vindex tramp-adb-program
address@hidden address@hidden, environment variable}
This method uses Android Debug Bridge program for accessing Android
devices. The Android Debug Bridge must be installed locally for
@value{tramp} to work. Some GNU/Linux distributions provide Android
Debug Bridge as an installation package. Alternatively, the program
is installed as part of the Android address@hidden @value{tramp} finds the
@command{adb} program either via the @env{PATH} environment variable
-or the absolute path set in the user option @option{tramp-adb-program}.
+or the absolute path set in the user option @code{tramp-adb-program}.
@vindex tramp-adb-connect-if-not-connected
@value{tramp} connects to Android devices with @option{adb} only when
-the user option @option{tramp-adb-connect-if-not-connected} is not
+the user option @code{tramp-adb-connect-if-not-connected} is not
@code{nil}. Otherwise, the connection must be established outside
Emacs.
@@ -1166,7 +1167,7 @@ pseudo method @option{-}, @ref{File name syntax}.
@defopt tramp-default-method
Default method is for transferring files. The user option
address@hidden sets it. @value{tramp} uses this user
address@hidden sets it. @value{tramp} uses this user
option to determine the default method for remote file names that do
not have one specified.
@@ -1178,7 +1179,7 @@ not have one specified.
@defopt tramp-default-method-alist
Default methods for transferring files can be customized for specific
user and host combinations through the user option
address@hidden
address@hidden
For example, the following two lines specify to use the @option{ssh}
method for all user names matching @samp{john} and the @option{rsync}
@@ -1254,7 +1255,7 @@ improvement is not always true.
@defopt tramp-default-user
@value{tramp} file name can omit the user name part since
@value{tramp} substitutes the currently logged-in user name. However
-this substitution can be overridden with @option{tramp-default-user}.
+this substitution can be overridden with @code{tramp-default-user}.
For example:
@lisp
@@ -1263,7 +1264,7 @@ For example:
@end defopt
@defopt tramp-default-user-alist
-Instead of a single default user, @option{tramp-default-user-alist}
+Instead of a single default user, @code{tramp-default-user-alist}
allows multiple default user values based on access method or host
name combinations. The alist can hold multiple values. For example, to
use the @samp{john} as the default user for the domain
@@ -1288,7 +1289,7 @@ corresponding alist entry to nil:
@end group
@end lisp
-The last entry in @option{tramp-default-user-alist} should be reserved
+The last entry in @code{tramp-default-user-alist} should be reserved
for catch-all or most often used login.
@lisp
@@ -1306,7 +1307,7 @@ for catch-all or most often used login.
@defopt tramp-default-host
When host name is omitted, @value{tramp} substitutes the value from
-the @option{tramp-default-host} user option. It is initially
+the @code{tramp-default-host} user option. It is initially
populated with the local host name where Emacs is running. The
default method, default user and default host can be overridden as
follows:
@@ -1325,10 +1326,10 @@ to John's home directory on @code{target} via
@code{ssh}.
@end defopt
@defopt tramp-default-host-alist
-Instead of a single default host, @option{tramp-default-host-alist}
+Instead of a single default host, @code{tramp-default-host-alist}
allows multiple default host values based on access method or user
name combinations. The alist can hold multiple values. While
address@hidden is sufficient in most cases, some methods,
address@hidden is sufficient in most cases, some methods,
like @option{adb}, require defaults overwritten.
@end defopt
@@ -1346,7 +1347,7 @@ hop kind, where the start and end points of the
connection did not
have intermediate check points.
@defopt tramp-default-proxies-alist
address@hidden specifies proxy hosts to pass
address@hidden specifies proxy hosts to pass
through. This user option is list of triples consisting of
@code{(@var{host} @var{user} @var{proxy})}.
@@ -1709,16 +1710,16 @@ Set @code{password-cache} to @code{nil} to disable
password caching.
@vindex tramp-persistency-file-name
For faster initial connection times, @value{tramp} stores previous
connection properties in a file specified by the user option
address@hidden
address@hidden
-The default file name for @option{tramp-persistency-file-name} is
+The default file name for @code{tramp-persistency-file-name} is
@file{~/.emacs.d/tramp}.
@value{tramp} reads this file during Emacs startup, and writes to it
when exiting Emacs. Delete this file for @value{tramp} to recreate a
new one on next Emacs startup.
-Set @option{tramp-persistency-file-name} to @code{nil} to disable
+Set @code{tramp-persistency-file-name} to @code{nil} to disable
storing connections persistently.
When @value{tramp} detects a change in the operating system version in
@@ -1733,7 +1734,7 @@ For more precise customization, parameters specified by
@code{tramp-methods} can be overwritten manually.
@vindex tramp-connection-properties
-Set @option{tramp-connection-properties} to manually override
+Set @code{tramp-connection-properties} to manually override
@code{tramp-methods}. Properties in this list are in the form
@code{(@var{regexp} @var{property} @var{value})}. @var{regexp}
matches remote file names. Use @code{nil} to match all.
@@ -1765,7 +1766,7 @@ The parameters @code{tramp-remote-shell} and
values for the remote host.
@var{property} could also be any property found in
address@hidden
address@hidden
To get around how restricted shells randomly drop connections, set the
special property @samp{busybox}. For example:
@@ -1794,7 +1795,7 @@ To improve performance and accuracy of remote file access,
@command{grep} when available.
@defopt tramp-remote-path
address@hidden specifies which remote directory paths
address@hidden specifies which remote directory paths
@value{tramp} can search for @ref{Remote programs}.
@vindex tramp-default-remote-path
@@ -1819,7 +1820,7 @@ Another way to find the remote path is to use the path
assigned to the
remote user by the remote host. @value{tramp} does not normally retain
this remote path after login. However, @code{tramp-own-remote-path}
preserves the path value, which can be used to update
address@hidden
address@hidden
@lisp
(add-to-list 'tramp-remote-path 'tramp-own-remote-path)
@@ -1863,22 +1864,22 @@ login security, especially not the exotic ones.
However, @value{tramp}
provides a few tweaks to address the most common ones.
@table @asis
address@hidden @option{tramp-shell-prompt-pattern}
address@hidden @code{tramp-shell-prompt-pattern}
@vindex tramp-shell-prompt-pattern
address@hidden is for remote login shell prompt,
address@hidden is for remote login shell prompt,
which may not be the same as the local login shell prompt,
@code{shell-prompt-pattern}. Since most hosts use identical prompts,
@value{tramp} sets a similar default value for both prompts.
address@hidden @option{tramp-password-prompt-regexp}
address@hidden @option{tramp-wrong-passwd-regexp}
address@hidden @code{tramp-password-prompt-regexp}
address@hidden @code{tramp-wrong-passwd-regexp}
@vindex tramp-password-prompt-regexp
@vindex tramp-wrong-passwd-regexp
address@hidden uses @option{tramp-password-prompt-regexp} to
address@hidden uses @code{tramp-password-prompt-regexp} to
distinguish between prompts for passwords and prompts for passphrases.
-By default, @option{tramp-password-prompt-regexp} handles the
+By default, @code{tramp-password-prompt-regexp} handles the
detection in English language environments. See a localization
example below:
@@ -1902,17 +1903,66 @@ example below:
@end lisp
Similar localization may be necessary for handling wrong password
-prompts, for which @value{tramp} uses @option{tramp-wrong-passwd-regexp}.
+prompts, for which @value{tramp} uses @code{tramp-wrong-passwd-regexp}.
+
address@hidden @code{tramp-terminal-type}
address@hidden tramp-terminal-type
address@hidden address@hidden, environment variable}
+
address@hidden uses the user option @code{tramp-terminal-type} to set
+the remote environment variable @env{TERM} for the shells it runs.
+Per default, it is @samp{"dumb"}, but this could be changed. A dumb
+terminal is best suited to run the background sessions of
address@hidden However, running interactive remote shells might
+require a different setting. This could be achieved by tweaking the
address@hidden environment variable in @code{process-environment}.
+
address@hidden
address@hidden
+(let ((process-environment
+ (cons "TERM=xterm-256color" process-environment)))
+ (shell))
address@hidden group
address@hidden lisp
+
address@hidden Determining a @value{tramp} session
address@hidden address@hidden, environment variable}
address@hidden address@hidden, environment variable}
+
+Sometimes, it is needed to identify whether a shell runs under
address@hidden control. The setting of environment variable @env{TERM}
+will help:
+
address@hidden
address@hidden
+if test "$TERM" = "dumb"; then
+ ...
+fi
address@hidden group
address@hidden example
+
+Another possibility is to check the environment variable
address@hidden Like for all subprocesses of Emacs, this is set
+to the version of the parent Emacs process, @xref{Interactive Shell, ,
+, emacs}. @value{tramp} adds its own package version to this string,
+which could be used for further tests in an inferior shell. The
+string of that environment variable loooks always like
+
address@hidden
address@hidden
+echo $INSIDE_EMACS
address@hidden 26.2,tramp:2.3.4
address@hidden group
address@hidden example
@item @command{tset} and other questions
@cindex unix command @command{tset}
@cindex @command{tset} unix command
address@hidden tramp-terminal-type
To suppress inappropriate prompts for terminal type, @value{tramp}
-sets the @env{TERM} to @code{dumb} before the remote login process
-begins via the user option @option{tramp-terminal-type}. This will
-silence common @command{tset} related prompts.
+sets the @env{TERM} environment variable before the remote login
+process begins via the user option @code{tramp-terminal-type} (see
+above). This will silence common @command{tset} related prompts.
@value{tramp}'s strategy for handling such prompts (commonly triggered
from login scripts on remote hosts) is to set the environment
@@ -1985,6 +2035,9 @@ shell-specific config files. For example, bash can use
@item Interactive shell prompt
address@hidden address@hidden, environment variable}
address@hidden address@hidden, environment variable}
address@hidden address@hidden, environment variable}
@value{tramp} redefines the remote shell prompt internally for robust
parsing. This redefinition affects the looks of a prompt in an
interactive remote shell through commands, such as @kbd{M-x shell
@@ -2142,7 +2195,7 @@ Open a remote connection with a more concise command
@kbd{C-x C-f
@vindex backup-directory-alist
To avoid @value{tramp} from saving backup files owned by @samp{root}
to locations accessible to others, default backup settings in
address@hidden have to be altered.
address@hidden have to be altered.
Here's a scenario where files could be inadvertently exposed. Emacs
by default writes backup files to the same directory as the original
@@ -2153,7 +2206,7 @@ default by @value{tramp} when using, say, a restricted
file
of the secretfile is now owned by the user logged in from
@value{tramp} and not @samp{root}.
-When @option{backup-directory-alist} is @code{nil} (the default), such
+When @code{backup-directory-alist} is @code{nil} (the default), such
problems do not occur.
To ``turn off'' the backup feature for @value{tramp} files and stop
@@ -2187,8 +2240,8 @@ Another option is to create better backup file naming
with user and
host names prefixed to the file name. For example, transforming
@file{/etc/secretfile} to
@file{~/.emacs.d/backups/!su:root@@localhost:!etc!secretfile}, set the
address@hidden user option @option{tramp-backup-directory-alist} from
-the existing user option @option{backup-directory-alist}.
address@hidden user option @code{tramp-backup-directory-alist} from
+the existing user option @code{backup-directory-alist}.
Then @value{tramp} backs up to a file name that is transformed with a
prefix consisting of the DIRECTORY name. This file name prefixing
@@ -2220,16 +2273,16 @@ The backup file name of
Just as for backup files, similar issues of file naming affect
auto-saving @value{tramp} files. Auto-saved files are saved in the
directory specified by the user option
address@hidden By default this is set to
address@hidden By default this is set to
the local temporary directory. But in some versions of Debian
GNU/Linux, this points to the source directory where the Emacs was
compiled. Reset such values to a valid directory.
-Set @option{auto-save-file-name-transforms} to @code{nil} to save
+Set @code{auto-save-file-name-transforms} to @code{nil} to save
auto-saved files to the same directory as the original file.
@vindex tramp-auto-save-directory
-Alternatively, set the user option @option{tramp-auto-save-directory}
+Alternatively, set the user option @code{tramp-auto-save-directory}
to direct all auto saves to that location.
@node Windows setup hints
@@ -2275,6 +2328,7 @@ Windows file names to Cygwin file names.
@cindex cygwin and @command{ssh-agent}
@cindex @env{SSH_AUTH_SOCK} and emacs on ms windows
address@hidden address@hidden, environment variable}
When using the @command{ssh-agent} on MS Windows for password-less
interaction, @option{ssh} methods depend on the environment variable
@@ -2551,7 +2605,7 @@ directory contents.
@cindex proxy hosts, ad-hoc
@value{tramp} file name syntax can accommodate ad hoc specification of
-multiple proxies without using @option{tramp-default-proxies-alist}
+multiple proxies without using @code{tramp-default-proxies-alist}
configuration setup(@pxref{Multi-hops}).
Each proxy is specified using the same syntax as the remote host
@@ -2568,15 +2622,15 @@ proxy @samp{bird@@bastion} to a remote file on
@samp{you@@remotehost}:
Proxies can take patterns @code{%h} or @code{%u}.
@value{tramp} adds the ad-hoc definitions on the fly to
address@hidden and is available for re-use
address@hidden and is available for re-use
during that Emacs session. Subsequent @value{tramp} connections to
the same remote host can then use the shortcut form:
@address@hidden,you@@remotehost,/path}}.
@defopt tramp-save-ad-hoc-proxies
For ad-hoc definitions to be saved automatically in
address@hidden for future Emacs sessions, set
address@hidden to address@hidden
address@hidden for future Emacs sessions, set
address@hidden to address@hidden
@lisp
(customize-set-variable 'tramp-save-ad-hoc-proxies t)
@@ -2621,7 +2675,7 @@ like @code{compile} and @code{grep}) and @file{gud.el}
(@code{gdb} or
For @value{tramp} to find the command on the remote, it must be
accessible through the default search path as setup by @value{tramp}
upon first connection. Alternatively, use an absolute path or extend
address@hidden (see @ref{Remote programs}):
address@hidden (see @ref{Remote programs}):
@lisp
@group
@@ -2631,9 +2685,9 @@ upon first connection. Alternatively, use an absolute
path or extend
@end lisp
@vindex tramp-remote-process-environment
-Customize user option @option{tramp-remote-process-environment} to
+Customize user option @code{tramp-remote-process-environment} to
suit the remote program's environment for the remote host.
address@hidden is a list of strings
address@hidden is a list of strings
structured similar to @code{process-environment}, where each element
is a string of the form @samp{ENVVARNAME=VALUE}.
@@ -2648,12 +2702,13 @@ Use @code{add-to-list} to add entries:
(add-to-list 'tramp-remote-process-environment "JAVA_HOME=/opt/java")
@end lisp
address@hidden address@hidden, environment variable}
Modifying or deleting already existing values in the
address@hidden list may not be feasible on
address@hidden list may not be feasible on
restricted remote hosts. For example, some system administrators
disallow changing @env{HISTORY} environment variable. To accommodate
such restrictions when using @value{tramp}, fix the
address@hidden by the following code in the
address@hidden by the following code in the
local @file{.emacs} file:
@lisp
@@ -2664,6 +2719,7 @@ local @file{.emacs} file:
@end group
@end lisp
address@hidden address@hidden, environment variable}
Setting the @env{ENV} environment variable instructs some shells to
read an initialization file. Per default, @value{tramp} has disabled
this. You could overwrite this behavior by evaluating
@@ -2676,12 +2732,12 @@ this. You could overwrite this behavior by evaluating
@end group
@end lisp
-In addition to @option{tramp-remote-process-environment}, you can set
+In addition to @code{tramp-remote-process-environment}, you can set
environment variables for individual remote process calls by
let-binding @code{process-environment}. @value{tramp} applies any
entries not present in the global default value of
@code{process-environment} (overriding
address@hidden settings, if they conflict).
address@hidden settings, if they conflict).
For example:
@lisp
@@ -2691,6 +2747,7 @@ For example:
@end group
@end lisp
address@hidden address@hidden, environment variable}
Let-binding in this way works regardless of whether the process to be
called is local or remote, since @value{tramp} would add just the
@env{HGPLAIN} setting and local processes would take whole value of
@@ -2702,6 +2759,7 @@ remotely, please file a bug report. @xref{Bug Reports}.
@subsection Running remote programs that create local X11 windows
address@hidden address@hidden, environment variable}
To allow a remote program to create an X11 window on the local host,
set the @env{DISPLAY} environment variable for the remote host as
follows in the local @file{.emacs} file:
@@ -2729,16 +2787,16 @@ local host.
@subsection Running @code{shell} on a remote host
@cindex @code{shell}
-Set @option{explicit-shell-file-name} to the appropriate shell name
+Set @code{explicit-shell-file-name} to the appropriate shell name
when using @value{tramp} between two hosts with different operating
systems, such as @samp{windows-nt} and @samp{gnu/linux}. This option
ensures the correct name of the remote shell program.
-When @option{explicit-shell-file-name} is equal to @code{nil}, calling
+When @code{explicit-shell-file-name} is equal to @code{nil}, calling
@code{shell} interactively will prompt for a shell name.
Starting with Emacs 26, you could use connection-local variables for
-setting different values of @option{explicit-shell-file-name} for
+setting different values of @code{explicit-shell-file-name} for
different remote hosts.
@ifinfo
@pxref{Connection Local Variables, , , elisp}
@@ -2819,7 +2877,7 @@ uid=0(root) gid=0(root) groups=0(root)
@code{eshell} added custom @code{su} and @code{sudo} commands that set
the default directory correctly for the @file{*eshell*} buffer.
address@hidden silently updates @option{tramp-default-proxies-alist}
address@hidden silently updates @code{tramp-default-proxies-alist}
with an entry for this directory (@pxref{Multi-hops}):
@example
@@ -2902,7 +2960,7 @@ relative or absolute paths, but not remote paths.
command. Powershell V2.0 on the remote host is required to run
processes triggered from @value{tramp}.
address@hidden and @option{explicit-*-args} have to
address@hidden and @code{explicit-*-args} have to
be set properly so @kbd{M-x shell @key{RET}} can open a proper remote
shell on a MS Windows host. To open @command{cmd}, set it as follows:
@@ -3297,7 +3355,7 @@ responsiveness slows down. Some suggestions within the
scope of
Use an external method, such as @option{scp}, which are faster than
internal methods.
-Keep the file @option{tramp-persistency-file-name}, which is where
+Keep the file @code{tramp-persistency-file-name}, which is where
@value{tramp} caches remote information about hosts and files. Caching
is enabled by default. Don't disable it.
@@ -3307,7 +3365,7 @@ files are not independently updated outside
@value{tramp}'s control.
That cache cleanup will be necessary if the remote directories or
files are updated independent of @value{tramp}.
-Set @option{tramp-completion-reread-directory-timeout} to @code{nil} to
+Set @code{tramp-completion-reread-directory-timeout} to @code{nil} to
speed up completions, @ref{File name completion}.
Disable version control to avoid delays:
@@ -3364,7 +3422,7 @@ uses left-hand side and right-hand side prompts in
parallel. Add the
following line to @file{~/.zshrc}:
@example
-[ $TERM = "dumb" ] && unsetopt zle && PS1='$ '
+[[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return
@end example
When using fish shell on remote hosts, disable fancy formatting by
@@ -3572,7 +3630,7 @@ Host indication in the mode line?
Install @file{tramp-theme} from GNU ELPA via Emacs' Package Manager.
Enable it via @kbd{M-x load-theme @key{RET} tramp @key{RET}}. Further
customization is explained in user option
address@hidden
address@hidden
@item
@@ -3597,10 +3655,13 @@ then set them with a hook as follows:
Why is @file{~/.sh_history} file on the remote host growing?
@vindex tramp-histfile-override
address@hidden address@hidden, environment variable}
address@hidden address@hidden, environment variable}
address@hidden address@hidden, environment variable}
Due to the remote shell saving tilde expansions triggered by
@value{tramp}, the history file is probably growing rapidly.
@value{tramp} can suppress this behavior with the user option
address@hidden When set to @code{t}, environment
address@hidden When set to @code{t}, environment
variable @env{HISTFILE} is unset, and environment variables
@env{HISTFILESIZE} @env{HISTSIZE} are set to 0.
@@ -3896,7 +3957,7 @@ package, use the full ad-hoc file name including all
hops, like
Alternatively, when saving abbreviated multi-hop file names
@address@hidden,news@@news.my.domain,/opt/news/etc}}, the user
-option @option{tramp-save-ad-hoc-proxies} must be set address@hidden
+option @code{tramp-save-ad-hoc-proxies} must be set address@hidden
value.
@@ -3944,6 +4005,7 @@ emacsclient @trampfn{ssh,$(whoami)@@$(hostname --fqdn),$1}
@end group
@end example
address@hidden address@hidden, environment variable}
Then change the environment variable @env{EDITOR} to point to the
wrapper script: