diff options
author | Jim Porter <jporterbugs@gmail.com> | 2023-07-09 12:04:01 -0700 |
---|---|---|
committer | Jim Porter <jporterbugs@gmail.com> | 2023-07-13 19:24:12 -0700 |
commit | 3a70354579819f883032fbf862d95f9f17649719 (patch) | |
tree | 9dda1f6ed2322aa2116e26183a704c735e7336a8 | |
parent | 7640835ae036560dbe4cda4b39f60c20dfc8c57d (diff) | |
download | emacs-3a70354579819f883032fbf862d95f9f17649719.tar.gz |
Add documentation about remote access in Eshell
Do not merge to master. This is a backport of 438921161ac.
* doc/misc/eshell.texi
(Invocation): Mention the '*' prefix.
(Remote Access): New section...
(Commands): ... link to it.
-rw-r--r-- | doc/misc/eshell.texi | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi index 3d859124b50..e05c1fc5baa 100644 --- a/doc/misc/eshell.texi +++ b/doc/misc/eshell.texi @@ -207,6 +207,7 @@ that will be invoked, type this as the Eshell prompt: * Built-ins:: * Variables:: * Aliases:: +* Remote Access:: * History:: * Completion:: * Control Flow:: @@ -266,7 +267,10 @@ As an ordinary Lisp function @vindex eshell-prefer-lisp-functions If you would prefer to use ordinary Lisp functions over external programs, set the option @code{eshell-prefer-lisp-functions} to -@code{t}. This will swap the lookup order of the last two items. +@code{t}. This will swap the lookup order of the last two items. You +can also force Eshell to look for a command as an external program by +prefixing its name with @kbd{*}, like @code{*@var{command}} +(@pxref{Built-ins}). You can also group command forms together into a subcommand with curly braces (@code{@{@}}). This lets you use the output of a subcommand as @@ -1048,6 +1052,33 @@ pass all arguments along. More selective use of arguments via @kbd{alias mcd 'mkdir $1 && cd $1'} would cause @kbd{mcd foo} to create and switch to a directory called @samp{foo}. +@end table + +@node Remote Access +@section Remote Access +@cmindex remote access + +Since Eshell uses Emacs facilities for most of its functionality, you +can access remote hosts transparently. To connect to a remote host, +simply @code{cd} into it: + +@example +~ $ cd /ssh:user@@remote: +/ssh:user@@remote:~ $ +@end example + +Additionally, built-in Eshell commands (@pxref{Built-ins}) and +ordinary Lisp functions accept remote file names, so you can access +them even without explicitly connecting first. For example, to print +the contents of a remote file, you could type @samp{cat +/ssh:user@@remote:~/output.log}. However, this means that when using +built-in commands or Lisp functions from a remote directory, you must +be careful about specifying absolute file names: @samp{cat +/var/output.log} will always print the contents of your @emph{local} +@file{/var/output.log}, even from a remote directory. If you find +this behavior annoying, you can enable the optional electric forward +slash module (@pxref{Electric forward slash}). + @node History @section History @cmindex history |