From 3772f444228a07404c5af1fdf67a220025d37645 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 24 Jan 2016 11:40:26 -0800 Subject: [PATCH] Port Tramp manual to latest Texinfo Otherwise, 'make pdf' did not work (Bug#22416). * doc/misc/tramp.texi (xxx, yyy): Remove macros. (trampfn): Specialize to the case where METHOD is nonempty. The 2nd argument is now user@host, not 2nd user and 3rd host args. All uses changed. (trampf): New macro. --- doc/misc/tramp.texi | 214 +++++++++++++++++++------------------------- 1 file changed, 90 insertions(+), 124 deletions(-) diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index eafd2385a5e..1b2b89e8e4e 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -18,52 +18,21 @@ @include trampver.texi @c Macro for formatting a file name according to the respective syntax. -@c xxx and yyy are auxiliary macros in order to omit leading and +@c Macro arguments should not have any leading or @c trailing whitespace. Not very elegant, but I don't know it better. -@c There are subtle differences between texinfo 4.13 and 5.0. We must -@c declare two versions of the macro. This will be improved, hopefully. - -@c Texinfo 5.0. -@ifset txicommandconditionals -@macro xxx {one} -@set \one\ -@end macro - -@macro yyy {one, two} -@xxx{x\one\}@c -@ifclear x -\one\@w{}\two\@c -@end ifclear -@clear x\one\ -@end macro - -@macro trampfn {method, user, host, localname} +@macro trampfn {method, userhost, localname} @value{prefix}@c -@yyy{\method\,@value{postfixhop}}@c -@yyy{\user\,@@}@c -\host\@value{postfix}\localname\ +\method\@value{postfixhop}@c +\userhost\@value{postfix}\localname\ @end macro -@end ifset -@c Texinfo 4.13. -@ifclear txicommandconditionals -@macro xxx {one}@c -@set \one\@c -@end macro - -@macro yyy {one, two}@c -@xxx{x\one\}@c -@ifclear x@c -\one\@w{}\two\@c -@end ifclear -@clear x\one\@c -@end macro +@c Similar, but without a method prefix. -@macro trampfn {method, user, host, localname}@c -@value{prefix}@yyy{\method\,@value{postfixhop}}@yyy{\user\,@@}\host\@value{postfix}\localname\@c +@macro trampf {userhost, localname} +@value{prefix}@c +\userhost\@value{postfix}\localname\ @end macro -@end ifclear @copying Copyright @copyright{} 1999--2016 Free Software Foundation, Inc. @@ -499,7 +468,7 @@ In December 2001, XEmacs package repository adds @value{tramp}. @value{tramp} is initially configured to use the @command{scp} program to connect to the remote host. Just type @kbd{C-x C-f} and then enter -file name @file{@trampfn{, user, host, /path/to.file}}. For details, +file name @file{@trampf{user@@host,/path/to.file}}. For details, see @xref{Default Method}. For problems related to the behavior of remote shell, see @ref{Remote @@ -913,7 +882,7 @@ authorization, @value{tramp} provides for an extended syntax in percent symbol, and domain is the windows domain name). An example: @example -@trampfn{smb, daniel%BIZARRE, melancholia, /daniel$$/.emacs} +@trampfn{smb,daniel%BIZARRE@@melancholia,/daniel$$/.emacs} @end example where user @code{daniel} connects as a domain user to the SMB host @@ -925,7 +894,7 @@ substitute the domain name with the name of the local host in UPPERCASE as shown here: @example -@trampfn{smb, daniel%MELANCHOLIA, melancholia, /daniel$$/.emacs} +@trampfn{smb,daniel%MELANCHOLIA@@melancholia,/daniel$$/.emacs} @end example where user @code{daniel} connects as local user to the SMB host @@ -969,7 +938,7 @@ the custom option @option{tramp-adb-connect-if-not-connected} is not @value{tramp} does not require a host name part of the remote file name when a single Android device is connected to @command{adb}. -@value{tramp} instead uses @file{@trampfn{adb, , ,}} as the default +@value{tramp} instead uses @file{@trampfn{adb,,}} as the default name. @command{adb devices} shows available host names. @option{adb} method normally does not need user name to authenticate @@ -1011,7 +980,7 @@ active, @pxref{Top, , D-Bus, dbus}. This method is for connecting to remote hosts with the Apple Filing Protocol for accessing files on Mac OS X volumes. @value{tramp} access syntax requires a leading volume (share) name, for example: -@file{@trampfn{afp, user, host, /volume}}. +@file{@trampfn{afp,user@@host,/volume}}. @item @option{dav} @item @option{davs} @@ -1179,7 +1148,7 @@ access and it has the most reasonable security protocols, use @file{/etc/motd} file on the otherhost: @example -@kbd{C-x C-f @trampfn{ssh, root, otherhost,/etc/motd} @key{RET}} +@kbd{C-x C-f @trampfn{ssh,root@@otherhost,/etc/motd} @key{RET}} @end example If @option{ssh} is unavailable for whatever reason, look for other @@ -1190,7 +1159,7 @@ For editing local files as @option{su} or @option{sudo} methods, try the shortened syntax of @samp{root}: @example -@kbd{C-x C-f @trampfn{su, , , /etc/motd} @key{RET}} +@kbd{C-x C-f @trampfn{su,,/etc/motd} @key{RET}} @end example For editing large files, @option{scp} is faster than @option{ssh}. @@ -1263,7 +1232,7 @@ default user and default host can be overridden as follows: tramp-default-host "target") @end lisp -With both defaults set, @samp{@trampfn{ssh, , ,}} will connect +With both defaults set, @samp{@trampfn{ssh,,}} will connect @value{tramp} to John's home directory on target. @ifset emacs @@ -1323,7 +1292,7 @@ user @samp{bird} to reach remote hosts outside the local domain: @lisp (add-to-list 'tramp-default-proxies-alist - '("\\." nil "@trampfn{ssh, bird, bastion.your.domain,}")) + '("\\." nil "@trampfn{ssh,bird@@bastion.your.domain,}")) (add-to-list 'tramp-default-proxies-alist '("\\.your\\.domain\\'" nil nil)) @end lisp @@ -1339,7 +1308,7 @@ connect to @samp{bastion.your.domain}, then: (add-to-list 'tramp-default-proxies-alist '("\\`bastion\\.your\\.domain\\'" "\\`bird\\'" - "@trampfn{ssh, , jump.your.domain,}")) + "@trampfn{ssh,jump.your.domain,}")) @end lisp @var{proxy} can take patterns @code{%h} or @code{%u} for @var{host} or @@ -1351,10 +1320,10 @@ access, then use this alist entry: @lisp (add-to-list 'tramp-default-proxies-alist - '("\\.your\\.domain\\'" "\\`root\\'" "@trampfn{ssh, , %h,}")) + '("\\.your\\.domain\\'" "\\`root\\'" "@trampfn{ssh,%h,}")) @end lisp -Opening @file{@trampfn{sudo, , randomhost.your.domain,}} first +Opening @file{@trampfn{sudo,randomhost.your.domain,}} first connects to @samp{randomhost.your.domain} via @code{ssh} under your account name, and then perform @code{sudo -u root} on that host. @@ -1370,7 +1339,7 @@ local one, first connect via @command{ssh}, and then apply @lisp (add-to-list 'tramp-default-proxies-alist - '(nil "\\`root\\'" "@trampfn{ssh, , %h,}")) + '(nil "\\`root\\'" "@trampfn{ssh,%h,}")) (add-to-list 'tramp-default-proxies-alist '((regexp-quote (system-name)) nil nil)) @end lisp @@ -1395,7 +1364,7 @@ discussion of ethical issues.} Then the configuration is: @lisp (add-to-list 'tramp-default-proxies-alist '("\\`host\\.other\\.domain\\'" nil - "@trampfn{tunnel, , proxy.your.domain#3128,}")) + "@trampfn{tunnel,proxy.your.domain#3128,}")) @end lisp Gateway methods in a multiple hop chain can be declared only as the first hop. @@ -1647,8 +1616,7 @@ cases, two different connections may result in the same persistent information. For example, connecting to a host using @command{ssh} and connecting to the same host through @code{sshd} on port 3001. Both access methods result in nearly identical persistent specifications -@file{@trampfn{ssh, , localhost,}} and @file{@trampfn{ssh, , -localhost#3001,}}. +@file{@trampfn{ssh,localhost,}} and @file{@trampfn{ssh,localhost#3001,}}. Changing host names could avoid duplicates. One way is to add a @option{Host} section in @file{~/.ssh/config} (@pxref{Frequently Asked @@ -1680,10 +1648,10 @@ remote shell: @lisp (add-to-list 'tramp-connection-properties - (list (regexp-quote "@trampfn{ssh, user, randomhost.your.domain,}") + (list (regexp-quote "@trampfn{ssh,user@@randomhost.your.domain,}") "remote-shell" "/bin/ksh")) (add-to-list 'tramp-connection-properties - (list (regexp-quote "@trampfn{ssh, user, randomhost.your.domain,}") + (list (regexp-quote "@trampfn{ssh,user@@randomhost.your.domain,}") "remote-shell-login" '("-"))) @end lisp @@ -1699,7 +1667,7 @@ special property @samp{busybox}. For example: @lisp (add-to-list 'tramp-connection-properties - (list (regexp-quote "@trampfn{ssh, user, randomhost.your.domain,}") + (list (regexp-quote "@trampfn{ssh,user@@randomhost.your.domain,}") "busybox" t)) @end lisp @@ -2002,8 +1970,8 @@ directory for temporary files: @end lisp @noindent -Open a remote connection with the command @kbd{C-x C-f @trampfn{ssh, , -192.168.0.26#2222, }}, where @command{sshd} is listening on port +Open a remote connection with the command @kbd{C-x C-f +@trampfn{ssh,192.168.0.26#2222,}}, where @command{sshd} is listening on port @samp{2222}. To add a corresponding entry to the @file{~/.ssh/config} file @@ -2027,7 +1995,7 @@ the previous example, fix the connection properties as follows: @noindent Open a remote connection with a more concise command @kbd{C-x C-f -@trampfn{ssh, , android, }}. +@trampfn{ssh,android,}}. @node Auto-save and Backup @@ -2056,7 +2024,7 @@ exposed. @value{emacsname} by default writes backup files to the same directory as the original files unless changed to another location, such as @file{~/.emacs.d/backups/}. Such a directory will also be used by default by @value{tramp} when using, say, a restricted file -@file{@trampfn{su, root, localhost, /etc/secretfile}}. The backup file +@file{@trampfn{su,root@@localhost,/etc/secretfile}}. The backup file of the secretfile is now owned by the user logged in from tramp and not root. @@ -2145,15 +2113,13 @@ Example: @end ifset @noindent -The backup file name of @file{@trampfn{su, root, localhost, -/etc/secretfile}} would be +The backup file name of +@file{@trampfn{su,root@@localhost,/etc/secretfile}} would be @ifset emacs -@file{@trampfn{su, root, localhost, -~/.emacs.d/backups/!su:root@@localhost:!etc!secretfile~}} +@file{@trampfn{su,root@@localhost,~/.emacs.d/backups/!su:root@@localhost:!etc!secretfile~}} @end ifset @ifset xemacs -@file{@trampfn{su, root, localhost, -~/.emacs.d/backups/![su!root@@localhost]!etc!secretfile~}} +@file{@trampfn{su,root@@localhost,~/.emacs.d/backups/![su!root@@localhost]!etc!secretfile~}} @end ifset Just as for backup files, similar issues of file naming affect @@ -2263,7 +2229,7 @@ passwords or authentication appear in the minibuffer. Hitting @cindex file name syntax @cindex file name examples -@file{@trampfn{, , host, localfilename}} +@file{@trampf{host,localfilename}} opens file @var{localfilename} on the remote host @var{host}, using the default method. @xref{Default Method}. @@ -2289,9 +2255,9 @@ For the file @file{/etc/squid.conf} on the host @code{melancholia}. @end table -@var{host} can take IPv4 or IPv6 address, as in @file{@trampfn{, , -127.0.0.1, .emacs}} or @file{@trampfn{, , -@value{ipv6prefix}::1@value{ipv6postfix}, .emacs}}. +@var{host} can take IPv4 or IPv6 address, as in +@file{@trampf{127.0.0.1,.emacs}} or +@file{@trampf{@value{ipv6prefix}::1@value{ipv6postfix},.emacs}}. @ifset emacs For syntactical reasons, IPv6 addresses must be embedded in square brackets @file{@value{ipv6prefix}} and @file{@value{ipv6postfix}}. @@ -2302,10 +2268,10 @@ remote user name for log in to the remote host. Specifying a different name using the proper syntax will override this default behavior: @example -@trampfn{, user, host, path/to.file} +@trampf{user@@host,path/to.file} @end example -@file{@trampfn{, daniel, melancholia, .emacs}} is for file +@file{@trampf{daniel@@melancholia,.emacs}} is for file @file{.emacs} in @code{daniel}'s home directory on the host, @code{melancholia}. @@ -2326,15 +2292,14 @@ The syntax specifications for user, host, and file do not change. To connect to the host @code{melancholia} as @code{daniel}, using @option{ssh} method for @file{.emacs} in @code{daniel}'s home -directory, the full specification is: @file{@trampfn{ssh, daniel, -melancholia, .emacs}}. +directory, the full specification is: +@file{@trampfn{ssh,daniel@@melancholia,.emacs}}. A remote file name containing a host name, which is the same string as a method name, is not allowed. For specifying port numbers, affix @file{#} to the host -name. For example: @file{@trampfn{ssh, daniel, melancholia#42, -.emacs}}. +name. For example: @file{@trampfn{ssh,daniel@@melancholia#42,.emacs}}. @node File name completion @@ -2355,7 +2320,7 @@ For example, type @kbd{C-x C-f @value{prefix}t @key{TAB}}, @value{tramp} completion choices show up as @example -@c @multitable {@trampfn{telnet, , melancholia.danann.net,}} {@trampfn{telnet, , 192.168.0.1,}} +@c @multitable {@trampfn{telnet,melancholia.danann.net,}} {@trampfn{telnet,192.168.0.1,}} @multitable @columnfractions .5 .5 @ifset emacs @item @value{prefixhop}telnet@value{postfixhop} @tab tmp/ @@ -2382,10 +2347,11 @@ shows host names @value{tramp} from @file{/etc/hosts} file, for example. @example @multitable @columnfractions .5 .5 -@c @multitable {@trampfn{telnet, , melancholia.danann.net,}} {@trampfn{telnet, , 192.168.0.1,}} -@item @trampfn{telnet, , 127.0.0.1,} @tab @trampfn{telnet, , 192.168.0.1,} -@item @trampfn{telnet, , @value{ipv6prefix}::1@value{ipv6postfix},} @tab @trampfn{telnet, , localhost,} -@item @trampfn{telnet, , melancholia.danann.net,} @tab @trampfn{telnet, , melancholia,} +@c @multitable {@trampfn{telnet,melancholia.danann.net,}} {@trampfn{telnet,192.168.0.1,}} +@item @trampfn{telnet,127.0.0.1,} @tab @trampfn{telnet,192.168.0.1,} +@c @item @trampfn{telnet,@value{ipv6prefix}::1@value{ipv6postfix},} @tab @trampfn{telnet,localhost,} +@item @value{prefix}telnet@value{postfixhop}@value{ipv6prefix}::1@value{ipv6postfix}@value{postfix} @tab @trampfn{telnet,localhost,} +@item @trampfn{telnet,melancholia.danann.net,} @tab @trampfn{telnet,melancholia,} @end multitable @end example @@ -2415,21 +2381,21 @@ Example: @example @ifset emacs -@kbd{C-x C-f @trampfn{telnet, , melancholia, /usr/local/bin//etc} @key{TAB}} - @print{} @trampfn{telnet, , melancholia, /etc} +@kbd{C-x C-f @trampfn{telnet,melancholia,/usr/local/bin//etc} @key{TAB}} + @print{} @trampfn{telnet,melancholia,/etc} -@kbd{C-x C-f @trampfn{telnet, , melancholia, //etc} @key{TAB}} +@kbd{C-x C-f @trampfn{telnet,melancholia,//etc} @key{TAB}} @print{} /etc -@kbd{C-x C-f @trampfn{telnet, , melancholia, /usr/local/bin///etc} @key{TAB}} +@kbd{C-x C-f @trampfn{telnet,melancholia,/usr/local/bin///etc} @key{TAB}} @print{} /etc @end ifset @ifset xemacs -@kbd{C-x C-f @trampfn{telnet, , melancholia, /usr/local/bin//}} - @print{} @trampfn{telnet, , melancholia, /} +@kbd{C-x C-f @trampfn{telnet,melancholia,/usr/local/bin//}} + @print{} @trampfn{telnet,melancholia,/} -@kbd{C-x C-f @trampfn{telnet, , melancholia, //}} +@kbd{C-x C-f @trampfn{telnet,melancholia,//}} @print{} / @end ifset @end example @@ -2464,8 +2430,7 @@ remote host name and file name. For example, hopping over a single proxy @samp{bird@@bastion} to a remote file on @samp{you@@remotehost}: @example -@c @kbd{C-x C-f @trampfn{ssh@value{postfixhop}bird@@bastion|ssh, you, -@c remotehost, /path}} +@c @kbd{C-x C-f @trampfn{ssh@value{postfixhop}bird@@bastion|ssh,you,remotehost,/path}} @kbd{C-x C-f @value{prefix}ssh@value{postfixhop}bird@@bastion|ssh@value{postfixhop}you@@remotehost@value{postfix}/path} @end example @@ -2475,7 +2440,7 @@ Proxies can take patterns @code{%h} or @code{%u}. @code{tramp-default-proxies-alist} and is available for re-use during that @value{emacsname} session. Subsequent @value{tramp} connections to the same remote host can then use the shortcut form: -@samp{@trampfn{ssh, you, remotehost, /path}}. +@samp{@trampfn{ssh,you@@remotehost,/path}}. @defopt tramp-save-ad-hoc-proxies @vindex tramp-save-ad-hoc-proxies @@ -2631,7 +2596,7 @@ on remote hosts and displays output in buffers on the local host. Example: @example -@kbd{C-x C-f @trampfn{sudo, , , } @key{RET}} +@kbd{C-x C-f @trampfn{sudo,,} @key{RET}} @kbd{M-! tail -f /var/log/syslog.log & @key{RET}} @end example @@ -2653,14 +2618,14 @@ You must add the module @code{eshell-tramp} to @kbd{M-x eshell} on a remote host: @example -@b{~ $} cd @trampfn{sudo, , , /etc} @key{RET} -@b{@trampfn{sudo, root, host, /etc} $} hostname @key{RET} +@b{~ $} cd @trampfn{sudo,,/etc} @key{RET} +@b{@trampfn{sudo,root@@host,/etc} $} hostname @key{RET} host -@b{@trampfn{sudo, root, host, /etc} $} id @key{RET} +@b{@trampfn{sudo,root@@host,/etc} $} id @key{RET} uid=0(root) gid=0(root) groups=0(root) -@b{@trampfn{sudo, root, host, /etc} $} find-file shadow @key{RET} +@b{@trampfn{sudo,root@@host,/etc} $} find-file shadow @key{RET} # -@b{@trampfn{sudo, root, host, /etc} $} +@b{@trampfn{sudo,root@@host,/etc} $} @end example @ifset emacs @@ -2671,16 +2636,16 @@ uid=0(root) gid=0(root) groups=0(root) (@pxref{Multi-hops}): @example -@b{~ $} cd @trampfn{ssh, user, remotehost, /etc} @key{RET} -@b{@trampfn{ssh, user, remotehost, /etc} $} find-file shadow @key{RET} -File is not readable: @trampfn{ssh, user, remotehost, /etc/shadow} -@b{@trampfn{ssh, user, remotehost, /etc} $} sudo find-file shadow @key{RET} +@b{~ $} cd @trampfn{ssh,user@@remotehost,/etc} @key{RET} +@b{@trampfn{ssh,user@@remotehost,/etc} $} find-file shadow @key{RET} +File is not readable: @trampfn{ssh,user@@remotehost,/etc/shadow} +@b{@trampfn{ssh,user@@remotehost,/etc} $} sudo find-file shadow @key{RET} # -@b{@trampfn{ssh, user, remotehost, /etc} $} su - @key{RET} -@b{@trampfn{su, root, remotehost, /root} $} id @key{RET} +@b{@trampfn{ssh,user@@remotehost,/etc} $} su - @key{RET} +@b{@trampfn{su,root@@remotehost,/root} $} id @key{RET} uid=0(root) gid=0(root) groups=0(root) -@b{@trampfn{su, root, remotehost, /root} $} +@b{@trampfn{su,root@@remotehost,/root} $} @end example @end ifset @@ -2702,11 +2667,11 @@ with a remote file name: @example @kbd{M-x gdb @key{RET}} -@b{Run gdb (like this):} gdb --annotate=3 @trampfn{ssh, , host, ~/myprog} @key{RET} +@b{Run gdb (like this):} gdb --annotate=3 @trampfn{ssh,host,~/myprog} @key{RET} @end example Relative file names are based on the remote default directory. When -@file{myprog.pl} exists in @file{@trampfn{ssh, , host, /home/user}}, +@file{myprog.pl} exists in @file{@trampfn{ssh,host,/home/user}}, valid calls include: @example @@ -2761,8 +2726,9 @@ To open @command{powershell} as a remote shell, use this: This command flushes all connection related objects. @option{vec} is the internal representation of a remote connection. When called interactively, this command lists active remote connections in the -minibuffer. Each connection is of the format @file{@trampfn{method, -user, host, }}. Flushing remote connections also cleans the password +minibuffer. Each connection is of the format +@file{@trampfn{method,user@@host,}}. Flushing remote connections also +cleans the password cache (@pxref{Password handling}), file cache, connection cache (@pxref{Connection caching}), and connection buffers. @end deffn @@ -3226,7 +3192,7 @@ HISTFILE=/dev/null How to shorten long file names when typing in @value{tramp}? Adapt several of these approaches to reduce typing. If the full name -is @file{@trampfn{ssh, news, news.my.domain, /opt/news/etc}}, then: +is @file{@trampfn{ssh,news@@news.my.domain,/opt/news/etc}}, then: @enumerate @@ -3241,11 +3207,11 @@ You can define default methods and user names for hosts, tramp-default-user "news") @end lisp -The reduced typing: @kbd{C-x C-f @trampfn{, , news.my.domain, /opt/news/etc}}. +The reduced typing: @kbd{C-x C-f @trampf{news.my.domain,/opt/news/etc}}. @strong{Note} that there are some useful shortcuts already. Accessing your local host as @samp{root} user, is possible just by @kbd{C-x C-f -@trampfn{su, , ,}}. +@trampfn{su,,}}. @item Use configuration options of the access method: @@ -3260,7 +3226,7 @@ Host xy User news @end example -The reduced typing: @kbd{C-x C-f @trampfn{ssh, , xy, /opt/news/etc}}. +The reduced typing: @kbd{C-x C-f @trampfn{ssh,xy,/opt/news/etc}}. Depending on the number of files in the directories, host names completion can further reduce key strokes: @kbd{C-x C-f @@ -3274,7 +3240,7 @@ the minibuffer. Environment variables are set either outside @value{emacsname} or inside @value{emacsname} with Lisp: @lisp -(setenv "xy" "@trampfn{ssh, news, news.my.domain, /opt/news/etc/}") +(setenv "xy" "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}") @end lisp The reduced typing: @kbd{C-x C-f $xy @key{RET}}. @@ -3295,7 +3261,7 @@ Redefine another key sequence in @value{emacsname} for @kbd{C-x C-f}: (find-file (read-file-name "Find Tramp file: " - "@trampfn{ssh, news, news.my.domain, /opt/news/etc/}")))) + "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}")))) @end lisp Simply typing @kbd{C-x C-y} would prepare minibuffer editing of file @@ -3312,7 +3278,7 @@ Abbreviation list expansion can be used to reduce typing long file names: @lisp (add-to-list 'directory-abbrev-alist - '("^/xy" . "@trampfn{ssh, news, news.my.domain, /opt/news/etc/}")) + '("^/xy" . "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}")) @end lisp The reduced typing: @kbd{C-x C-f /xy @key{RET}}. @@ -3329,7 +3295,7 @@ minibuffer: @lisp (define-abbrev-table 'my-tramp-abbrev-table - '(("xy" "@trampfn{ssh, news, news.my.domain, /opt/news/etc/}"))) + '(("xy" "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}"))) (add-hook 'minibuffer-setup-hook @@ -3427,7 +3393,7 @@ directory to the cache: @lisp (eval-after-load "filecache" '(file-cache-add-directory - "@trampfn{ssh, news, news.my.domain, /opt/news/etc/}")) + "@trampfn{ssh,news@@news.my.domain,/opt/news/etc/}")) @end lisp Then use directory completion in the minibuffer with @kbd{C-x C-f @@ -3479,11 +3445,11 @@ multi-hops}) via bookmarks, recent files, filecache, bbdb, @end ifset or another package, use the full ad-hoc file name including all hops, -like @file{@trampfn{ssh, bird, -bastion|ssh@value{postfixhop}news.my.domain, /opt/news/etc}}. +like +@file{@trampfn{ssh,bird@@bastion|ssh@value{postfixhop}news.my.domain,/opt/news/etc}}. Alternatively, when saving abbreviated multi-hop file names -@file{@trampfn{ssh, news, news.my.domain, /opt/news/etc}}, the custom +@file{@trampfn{ssh,news@@news.my.domain,/opt/news/etc}}, the custom option @code{tramp-save-ad-hoc-proxies} must be set non-@code{nil} value. @@ -3516,7 +3482,7 @@ location. Then start Emacs Client from the command line: @example -emacsclient @trampfn{ssh, user, host, /file/to/edit} +emacsclient @trampfn{ssh,user@@host,/file/to/edit} @end example @code{user} and @code{host} refer to the local host. @@ -3526,7 +3492,7 @@ script @file{emacsclient.sh}: @example #!/bin/sh -emacsclient @trampfn{ssh, $(whoami), $(hostname --fqdn), $1} +emacsclient @trampfn{ssh,$(whoami)@@$(hostname --fqdn),$1} @end example Then change the environment variable @env{EDITOR} to point to the -- 2.39.2