From: Jim Porter <jporterbugs@gmail.com>
To: Michael Albinus <michael.albinus@gmx.de>
Cc: emacs-devel@gnu.org
Subject: Re: Eshell manual is (hopefully) complete!
Date: Fri, 7 Jul 2023 22:57:35 -0700 [thread overview]
Message-ID: <044aa267-89dd-d02d-3b05-a31d619e1eb9@gmail.com> (raw)
In-Reply-To: <87jzvdt1w3.fsf@gmx.de>
On 7/6/2023 9:56 AM, Michael Albinus wrote:
> I gave it a full proof-reading (based on 14e57b8f4cf). Here my comments:
Thanks for the thorough review. Responses inline below.
> - Top page "(*note Emacs Lisp Interaction: (emacs)Lisp Interaction.)"
> Shouldn't the period be at the end of the phrase?
Fixed.
> - Top page: "This manual is for Eshell, the Emacs shell."
> eshell.el speaks about version 2.4.2, shouldn't this be mentioned
> here? And more general, is this a proper version today?
>
> Somewhere else in the manual we find "Eshell version 2.4.2, which is
> the version included with Emacs 22."
I'll have to think about that. It might make sense to bump Eshell's
version to 3.0.0 for Emacs 29 (there are quite a few changes), and then
maybe 3.1.0 for Emacs 30 (where there are not so many changes - at least
not yet). I'm open to ideas though.
> - Top page:
>
> --8<---------------cut here---------------start------------->8---
> * Introduction:: A brief introduction to the Emacs Shell.
> * Commands::
> * Expansion::
> * Input/Output::
> * Extension modules::
> * Bugs and ideas:: Known problems, and future ideas.
> * GNU Free Documentation License:: The license for this documentation.
> * Concept Index::
> * Function and Variable Index::
> * Command Index::
> --8<---------------cut here---------------end--------------->8---
>
> Shouldn't all entries have a description? The same for all other menus
> (I don't mention it, again).
Possibly. I'm not sure what the standard is, but it would probably be ok
to add descriptions for everything.
> - 1 Introduction
> Menu is doubled. It misses node "What is Eshell?"
This might take a bit of reorganizing. Maybe someone else knows the
right way to arrange Texinfo sections here? Otherwise, I can look into
it later.
> - 1.2 Contributors to Eshell
> I miss at least your name, and Amin Bandali.
I'll start a separate thread to see if any past Eshell contributors
whose names aren't on the list would like to be added.
> - 2.2 Arguments "(*note Eshell commands: Built-ins.)"
> The period looks superfluous.
Fixed.
> - 2.2.1 Quoting and escaping ‘"The answer is: \"$answer\""’
> Shouldn't it be ‘"The answer is: \"$ANSWER\""’
Well, that depends. Eshell variables can be Lisp variables or
environment variables, so in the former case, "$answer" would make
sense, I think.
> - 2.3 Built-in commands
> I suppose built-in commands are the functions `eshell/*', perhaps you
> could mention this.
That's actually mentioned farther down, in the "Defining new built-in
commands" section, but it probably makes sense to mention it here too.
Fixed.
> Comparing this list, and the built-in commands in "5.1.4 Tramp
> extensions" and "5.1.5 Extra built-in commands", I miss the built-in
> commands eshell/count, eshell/define, eshell/eshell-debug, eshell/ff,
> eshell/gf, eshell/urgrep.
I added documentation for 'count', 'eshell-debug', 'ff', and 'gf'.
'define' is obsolete (I'm not sure it ever worked, and maybe I should
have just removed it entirely). 'urgrep' is from the Urgrep package on
GNU ELPA (which I wrote :)).
> ‘kill’
> As I understand, it kills local processes. Since signal-process
> supports also remote processes: WIBNI eshell does it as well? (This
> comment is not part of the review, just being curious)
I'll have to look into this. Improving Tramp support in Eshell is
definitely on my list of things to do.
> - 2.4.1 Built-in variables
> You offer $UID, but not $GID. Why?
Oops. I actually thought I had done that already (see bug#63221), but
evidently I forgot to add a special built-in variable for it. I'll file
a separate bug for this.
> ‘$INSIDE_EMACS’
> This variable indicates to external commands that they are being
> invoked from within Emacs so they can adjust their behavior if
> necessary. Its value is ‘EMACS-VERSION,eshell’.
>
> For remote processes, the value is 'EMACS-VERSION,eshell,tramp:TRAMP-VERSION'.
> Or even longer, f.e. if there is a compilation process. So you should say
> "The value starts with '...'".
Fixed.
> - 2.5 Aliases
> "an alias’s arguments" => "an alias’s argument"
I think the current text is correct, actually. There's one alias in the
example, but it has several arguments.
> - 2.7 Completion
> "lisp forms" => "Lisp forms" (2 times)
>
> - 2.8 Control Flow
> "lisp forms" => "Lisp forms"
Fixed.
> - 3.1 Dollars Expansion
>
> ‘$<COMMAND>’
> As with ‘${COMMAND}’, evaluates the Eshell command invocation
> ‘COMMAND’, but writes the output to a temporary file and returns
> the file name.
>
> I'm curious: is it always a *local* temporary file, or can the
> temporary file being located on a remote system, if $<COMMAND> is
> executed there?
Hmm, I'm not sure. Looking at the code, I *think* it's always local, but
I'll have to test it out.
> "(*note Sequences: (elisp)Sequences Arrays Vectors.)."
> There seems to be a superfluous period.
Fixed.
> - 3.2 Globbing
> Customize group “eshell-glob” => Customize group 'eshell-glob'
>
> - 3.3 Argument Predication and Modification
> Customize group “eshell-pred” => Customize group 'eshell-pred'
Fixed.
> - 4.2 Redirection
> ‘>>> BUFFER’
> ‘FD>>> BUFFER’
> I would still say DEST instead of BUFFER.
>
> ‘&> FILE’
> ‘>& FILE’
> ‘&>> FILE’
> ‘>>& FILE’
> ‘&>>> FILE’
> ‘>>>& FILE’
> I would still say DEST instead of FILE.
Fixed.
> - 5.1 Optional modules
> "In addition to the various modules enabled by default (documented above)"
>
> I haven't seen any module description "above". That is, the following
> modules aren't mentioned anywhere in the manual: eshell-alias,
> eshell-banner, eshell-basic, eshell-cmpl, eshell-dirs, eshell-extpipe,
> eshell-glob, eshell-hist, eshell-ls, eshell-pred, eshell-prompt,
> eshell-script, eshell-term, eshell-unix. All of them can be deselected
> via user option eshell-modules-list, which looks to me like they are
> optional.
>
> Of course, some of them aren't optional. So it might be needed to
> explain this user option, and to explain what shall be selected or
> deselected. Which modules are mandatory, and which are optional.
All the modules *should* be optional (although there are several that I
can't imagine a user disabling, like 'eshell-dirs'). I'll have to think
about how to document this more clearly...
> - 6 Bugs and ideas
> "Once symbolic mode is supported for ‘umask’, implement ‘chmod’ in Lisp"
>
> "man umask" tells me
>
> umask [-p] [-S] [mode]
> The user file-creation mask is set to mode. If mode
> begins with a digit, it is interpreted as an octal number;
> otherwise it is interpreted as a symbolic mode mask
> similar to that accepted by chmod(1). ...
There's a built-in version of umask ('eshell/umask'), but it doesn't
support symbolic mode yet. I actually have a patch in progress for this...
> "Write an ‘info’ alias that can take arguments
> So that the user can enter ‘info chmod’, for example."
>
> This seems to be implemented.
Looks like it. Fixed.
> "Write a ‘tail’ command which uses ‘view-file’
> It would move point to the end of the buffer, and then turns on
> auto-revert mode in that buffer at frequent intervals—and a ‘head’
> alias which assumes an upper limit of ‘eshell-maximum-line-length’
> characters per line.
>
> Perhaps auto-revert-tail-mode is better suited?
Perhaps. I'll look into that and how it would work exactly.
next prev parent reply other threads:[~2023-07-08 5:57 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-01 19:35 Eshell manual is (hopefully) complete! Jim Porter
2023-07-02 8:52 ` Dr. Arne Babenhauserheide
2023-07-02 9:20 ` Eli Zaretskii
2023-07-02 9:31 ` Dr. Arne Babenhauserheide
2023-07-03 2:44 ` Richard Stallman
2023-07-06 16:56 ` Michael Albinus
2023-07-08 5:57 ` Jim Porter [this message]
2023-07-08 15:16 ` Michael Albinus
2023-07-08 19:16 ` Jim Porter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=044aa267-89dd-d02d-3b05-a31d619e1eb9@gmail.com \
--to=jporterbugs@gmail.com \
--cc=emacs-devel@gnu.org \
--cc=michael.albinus@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.