|
||
---|---|---|
.. | ||
test-data | ||
README.md | ||
regexp-highlighter.zsh |
zsh-syntax-highlighting / highlighters / regexp
This is the regexp
highlighter, that highlights user-defined regular
expressions. It's similar to the pattern
highlighter, but allows more complex
patterns.
How to tweak it
To use this highlighter, associate regular expressions with styles in the
ZSH_HIGHLIGHT_REGEXP
associative array, for example in ~/.zshrc
:
typeset -A ZSH_HIGHLIGHT_REGEXP
ZSH_HIGHLIGHT_REGEXP+=('\bsudo\b' fg=123,bold)
This will highlight "sudo" only as a complete word, i.e., "sudo cmd", but not "sudoedit"
The syntax for values is the same as the syntax of "types of highlighting" of
the zsh builtin $zle_highlight
array, which is documented in the zshzle(1)
manual page.
See also: regular expressions tutorial, zsh regexp operator =~
in the zshmisc(1)
manual page
Cautions to BSD-based platform users
In BSD-based platform such as macOS, the regex metacharacters with leading backslash (\
)
such as \b
, \w
, etc. are not supported.
So if you want something like the above example, you should use [[:<:]]
(matches the beginning of a word)
with [[:>:]]
(matches the end of a word). The complete example would be like:
typeset -A ZSH_HIGHLIGHT_REGEXP
ZSH_HIGHLIGHT_REGEXP+=('[[:<:]]sudo[[:>:]]' fg=123,bold)
For other metacharacters, consider using POSIX ERE instead.