341a3ae1f0
_zsh_highlight_add_highlight appends to region_highlight $1 $2 and the next non-null parameter. If there is no non-null parameter, do nothing, This is so that highlighters can add a style with fallbacks if the most specific style is not defined. If none of the applicable styles are defined, do the right thing and don't add an invalid entry to region_highlight. The pattern highlighter doesn't use this function as it'd need too large of an API change. |
||
---|---|---|
.. | ||
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 (!foo
and^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 ($foo
inside""
)back-double-quoted-argument
- back double quoted arguments (\x
inside""
)back-dollar-quoted-argument
- back dollar quoted arguments (\x
inside$''
)assign
- parameter assignmentsredirection
- redirection operators (<
,>
, etc)comment
- comments, whensetopt INTERACTIVE_COMMENTS
is 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.