zsh-syntax-highlighting
zsh-syntax-highlighting copied to clipboard
history-expansion does not highlight & (previous substitution modifier) character
Screenshot: (note that expansion does work as expected after hitting return. &
however, is not highlighted)
Reproducible setup:
$ echo foo_replaceme_bar
$ echo baz_replaceme_qux
$ !-2:s/replaceme/subst/ && !-1:&
Relevant zsh manual section: 14.1.4 Modifiers.
&
Repeat the previouss
substitution. Likes
, may be preceded immediately by ag
. In parameter expansion the&
must appear inside braces, and in filename generation it must be quoted with a backslash.
I'm no zsh expert but I think all modifiers apply to history expansions too, so the modifier &
should be also be highlighted in history-expansion
.
Looks like this is a zsh bug
printf '<%s>' ${(z)${:-'!-2:&'}}
<!-2:><&>
(That means the (z)
PE flag is splitting the &
into a separate token when it should be all one token.)
Looks like this is a zsh bug
Reported at https://zsh.org/workers/51819