| The input to the $PS3 prompt is not commands, so the 'main' highlighter is not applicable to it. Fixes zsh-users/zsh-syntax-highlighting#268. | ||
|---|---|---|
| .. | ||
| test-data | ||
| README.md | ||
| 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 / errors
- reserved-word- shell reserved words (- if,- for)
- alias- aliases
- suffix-alias- suffix aliases (requires zsh 5.1.1 or newer)
- builtin- shell builtin commands (- shift,- pwd,- zstyle)
- function- function names
- command- command names
- precommand- precommand modifiers (e.g.,- noglob,- builtin)
- commandseparator- command separation tokens (- ;,- &&)
- hashed-command- hashed commands
- path- existing filenames
- path_prefix- prefixes of existing filenames
- globbing- 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 assignments
- redirection- redirection operators (- <,- >, etc)
- comment- comments, when- setopt 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.