summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Porter <jporterbugs@gmail.com>2023-07-09 12:04:01 -0700
committerJim Porter <jporterbugs@gmail.com>2023-07-13 19:24:12 -0700
commit3a70354579819f883032fbf862d95f9f17649719 (patch)
tree9dda1f6ed2322aa2116e26183a704c735e7336a8
parent7640835ae036560dbe4cda4b39f60c20dfc8c57d (diff)
downloademacs-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.texi33
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