From: Bart Schaefer <schaefer@brasslantern.com>
To: Zsh hackers list <zsh-workers@zsh.org>
Subject: [PATCH] FAQ update for aliasing
Date: Fri, 29 Jan 2021 11:35:28 -0800 [thread overview]
Message-ID: <CAH+w=7bhYMMe7p4ueOGH+NWWsUM5H-qs2fK7ABP5iQYzdh+rnA@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1110 bytes --]
The section on csh-to-zsh alias equivalence had a number of
not-incorrect but not-up-to-date references. Attached patch fixes
these.
However, when I do "cd Etc; make FAQ" on Ubuntu 20.04.1 LTS, I get
some strange formatting. Hopefully you can see what I mean in the
copy-paste below despite possible gmail line wrap:
--- 8< ---
Here is Bart Schaefer's guide to converting csh aliases for zsh.
1. ) If the csh alias references "parameters" (\!:1, \!* etc.),
then in zsh you need a function (referencing $1, $* etc.).
In recent versions of zsh this can be done by defining an anonymous
function within the alias. Otherwise, a simple zsh alias suffices.
2. ) If you use a zsh function, you need to refer _at_least_ to
$* in the body (inside the { }). Parameters don't magically
appear inside the { } the way they get appended to an alias.
--- 8< ---
That is, most paragraphs get a hanging left indent (outdent?), but not
all do. This happens in other sections, not just the one touched in
the patch. I'm not sure the hanging leader is even intentional. Do
others see this?
[-- Attachment #2: faq-diff.txt --]
[-- Type: text/plain, Size: 1690 bytes --]
diff --git a/Etc/FAQ.yo b/Etc/FAQ.yo
index a4ffba688..7aeddd89c 100644
--- a/Etc/FAQ.yo
+++ b/Etc/FAQ.yo
@@ -715,7 +715,8 @@ label(23)
enumeration(
myeit() If the csh alias references "parameters" (tt(\!:1), tt(\!*) etc.),
then in zsh you need a function (referencing tt($1), tt($*) etc.).
- Otherwise, you can use a zsh alias.
+ In recent versions of zsh this can be done by defining an anonymous
+ function within the alias. Otherwise, a simple zsh alias suffices.
myeit() If you use a zsh function, you need to refer _at_least_ to
tt($*) in the body (inside the tt({ })). Parameters don't magically
@@ -759,7 +760,7 @@ label(23)
parameters. (E.g., in a csh alias, a reference to tt(\!:5) will
cause an error if 4 or fewer arguments are given; in a zsh
function, tt($5) is the empty string if there are 4 or fewer
- parameters.)
+ parameters. Force an error in this example by using tt(${5?}).)
myeit() To begin a zsh alias with a - (dash, hyphen) character, use
mytt(alias --):
@@ -780,9 +781,8 @@ label(23)
)
mytt(l) in the function definition is in command position and is expanded
as an alias, defining mytt(/bin/ls) and mytt(-F) as functions which call
- mytt(/bin/ls), which gets a bit recursive. This can be avoided if you use
- mytt(function) to define a function, which doesn't expand aliases. It is
- possible to argue for extra warnings somewhere in this mess.
+ mytt(/bin/ls), which gets a bit recursive. Recent versions of zsh treat
+ this as an error, but older versions silently create the functions.
One workaround for this is to use the "function" keyword instead:
verb(
next reply other threads:[~2021-01-29 19:35 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-29 19:35 Bart Schaefer [this message]
2021-02-01 16:13 ` Daniel Shahaf
2021-02-01 20:11 ` Bart Schaefer
2021-02-03 11:15 ` Daniel Shahaf
2022-06-12 13:10 ` Jun. T
2022-06-12 16:26 ` Bart Schaefer
2022-06-13 14:58 ` Jun. T
2022-06-13 15:04 ` Peter Stephenson
2022-06-13 17:13 ` Jun. T
2022-06-14 8:38 ` Peter Stephenson
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='CAH+w=7bhYMMe7p4ueOGH+NWWsUM5H-qs2fK7ABP5iQYzdh+rnA@mail.gmail.com' \
--to=schaefer@brasslantern.com \
--cc=zsh-workers@zsh.org \
/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 public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).