Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: alias/anon_function quoting issue



On Fri, Jul 14, 2023 at 7:47 AM Jim <linux.tech.guy@xxxxxxxxx> wrote:
>
> Note:  This is not critical, just annoying that "I" can't figure it out.

Here's a little trick for making the shell figure it out for you.

Step 1:  Define the function you want using a placeholder name of some sort:

    function foo { Var=$'\e[' }

Step 2:  Define the alias by referencing the $functions special
parameter (which contains only the body of each function):

    alias foo="() { $functions[foo] }"

Step 3:  Delete the placeholder function.

    unfunction foo

Step 4 (if you want):  Confirm the alias definition:

    alias foo

The shell will use a bit more elaborate quoting than strictly
necessary in some cases (and for some reason $functions encodes the
body with a leading tab character, removing that if you want is left
as an exercise) but you shouldn't need to worry about it working.

I can't think of a reason to define a global alias as a function, but
be sure the placeholder name used at steps 1 and 3 is not a global
alias.




Messages sorted by: Reverse Date, Date, Thread, Author