top | item 27728014

(no title)

IronBacon | 4 years ago

On Zsh there is also '=' as prefix, at least that's what I normally use, don't recall if it's a default setting or the result of a local configuration...

discuss

order

JNRowe|4 years ago

Perhaps you already know, but…

The `=` prefix in zsh works, but is a different beast entirely. The backslash trick will simply stop the command parser from expanding the alias, while the equals prefix will expand to the full path of the given command at parsing time. For example:

     $ print -l =cat =bat
     /usr/bin/cat
     /usr/bin/bat
While it is a trivial difference in your use case, it can be useful in itself; You could use `ldd =zsh` instead of needing to provide the full path, or `dpkg -S =make` to search for /usr/bin/make(or whatever) instead of returning results of files with the string make anywhere in the name.

It is a default setting for the expansion system(only when in zsh mode), but can be disabled with `unsetopt equals` if you dislike it. Gory details in zshexpn(1) and zshoptions(1).

maddyboo|4 years ago

A cool thing about = is it expands to the full path of the executable, so I often use it to edit the shell scripts that are in my PATH, e.g.

    vim =audioctl
 
Expands to

    vim /home/myusername/bin/audioctl