mirror of
https://github.com/zsh-users/zsh-syntax-highlighting.git
synced 2025-10-23 15:46:27 +08:00
While here, also add a test for the '!' reserved word (which is highlighted
since
|
||
|---|---|---|
| .. | ||
| test-data | ||
| main-highlighter.zsh | ||
| README.md | ||
zsh-syntax-highlighting / highlighters / main
This is the main highlighter, that highlights:
- Commands
- Options
- Arguments
- Paths
- Strings
This highlighter is active by default.
How to tweak it
This highlighter defines the following styles:
unknown-token- unknown tokens / errorsreserved-word- shell reserved words (if,for)alias- aliasessuffix-alias- suffix aliases (requires zsh 5.1.1 or newer)builtin- shell builtin commands (shift,pwd,zstyle)function- function namescommand- command namesprecommand- precommand modifiers (e.g.,noglob,builtin)commandseparator- command separation tokens (;,&&)hashed-command- hashed commandspath- existing filenamespath_prefix- prefixes of existing filenamesglobbing- globbing expressions (*.txt)history-expansion- history expansion expressions (!fooand^foo^bar)single-hyphen-option- single hyphen options (-o)double-hyphen-option- double hyphen options (--option)back-quoted-argument- backquoted expressions (`foo`)single-quoted-argument- single quoted arguments ('foo')double-quoted-argument- double quoted arguments ("foo")dollar-quoted-argument- dollar quoted arguments ($'foo')dollar-double-quoted-argument- parameter expansion inside double quotes ($fooinside"")back-double-quoted-argument- back double quoted arguments (\xinside"")back-dollar-quoted-argument- back dollar quoted arguments (\xinside$'')assign- parameter assignmentsredirection- redirection operators (<,>, etc)comment- comments, whensetopt INTERACTIVE_COMMENTSis in effect (echo # foo)default- everything else
To override one of those styles, change its entry in ZSH_HIGHLIGHT_STYLES,
for example in ~/.zshrc:
# Declare the variable
typeset -A ZSH_HIGHLIGHT_STYLES
# To differentiate aliases from other command types
ZSH_HIGHLIGHT_STYLES[alias]='fg=magenta,bold'
# To have paths colored instead of underlined
ZSH_HIGHLIGHT_STYLES[path]='fg=cyan'
# To disable highlighting of globbing expressions
ZSH_HIGHLIGHT_STYLES[globbing]='none'
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.