zsh-syntax-highlighting/highlighters/main
Mark Lodato c62cb54e9d do not remove quotes when checking assignments
Zsh does not allow the variable name or the equals sign to be quoted or
escaped.  The previous code incorrectly highlighted the following
examples as assignments:

    $ 'x=y'
    zsh: command not found: x=y
    $ x\=y
    zsh: command not found: x=y
    $ "x"=y
    zsh: command not found: x=y
    $ \x=y
    zsh: command not found: x=y
2013-10-30 00:00:16 -04:00
..
test-data add tests for handling tildes 2011-09-07 01:14:45 +08:00
main-highlighter.zsh do not remove quotes when checking assignments 2013-10-30 00:00:16 -04:00
README.md #155: document path_prefix/path_approx 2013-08-09 09:56:28 +02:00

zsh-syntax-highlighting / highlighters / main

This is the main highlighter, that highlights:

  • Commands
  • Options
  • Arguments
  • Paths
  • Strings

How to activate it

To activate it, add it to ZSH_HIGHLIGHT_HIGHLIGHTERS:

ZSH_HIGHLIGHT_HIGHLIGHTERS=( [...] main)

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
  • alias - aliases
  • builtin - shell builtin commands
  • function - functions
  • command - commands
  • precommand - precommands (i.e. exec, builtin, ...)
  • commandseparator - command separation tokens
  • hashed-command - hashed commands
  • path - paths
  • path_prefix - path prefixes
  • path_approx - approximated paths
  • globbing - globbing expressions
  • history-expansion - history expansion expressions
  • single-hyphen-option - single hyphen options
  • double-hyphen-option - double hyphen options
  • back-quoted-argument - backquoted expressions
  • single-quoted-argument - single quoted arguments
  • double-quoted-argument - double quoted arguments
  • dollar-double-quoted-argument - dollar double quoted arguments
  • back-double-quoted-argument - back double quoted arguments
  • assign - variable assignments
  • default - parts of the buffer that do not match anything

To override one of those styles, change its entry in ZSH_HIGHLIGHT_STYLES, for example in ~/.zshrc:

# 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 declaring styles is documented here.