51614ca2c9
This manifested in completion of the form «./foo<TAB>» where there happened to be a program called 'foo' in $PATH. Fixes #354. Closes #355. |
||
---|---|---|
.. | ||
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_pathseparator
- path separators in filenames (/
); if unset,path
is used (default)path_prefix
- prefixes of existing filenamespath_prefix_pathseparator
- path separators in prefixes of existing filenames (/
); if unset,path_prefix
is used (default)globbing
- 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.