Fish shell like syntax highlighting for Zsh.
Shell Other
Latest commit b8fa1b9 Dec 3, 2016 @danielshahaf danielshahaf driver: Handle aliases that begin with a '+'
Merge remote-tracking branch 'upstream/pr/395'

* upstream/pr/395:
  tests: Add a regression test for issue #392 (aliases beginning with a '+' are lost).
  tests: Move some code in preparation for next commit. No functional change.
  driver: Don't undefine aliases that begin with a '+', to workaround an upstream bug.

README.md

zsh-syntax-highlighting

Fish shell-like like syntax highlighting for Zsh.

Requirements: zsh 4.3.17+.

This package provides syntax highlighing for the shell zsh. It enables highlighing of commands whilst they are typed at a zsh prompt into an interactive terminal. This helps in reviewing commands before running them, particularly in catching syntax errors.

Some examples:

Before: Screenshot #1.1
After:  Screenshot #1.2

Before: Screenshot #2.1
After:  Screenshot #2.2

Before: Screenshot #3.1
After:  Screenshot #3.2

How to install

See INSTALL.md.

FAQ

Why must zsh-syntax-highlighting.zsh be sourced at the end of the .zshrc file?

zsh-syntax-highlighting.zsh wraps ZLE widgets. It must be sourced after all custom widgets have been created (i.e., after all zle -N calls and after running compinit). Widgets created later will work, but will not update the syntax highlighting.

Does syntax highlighting work during incremental history search?

Highlighting the command line during an incremental history search (with the history-incremental-search-backward widget, which is bound by default to Ctrl+R in zsh's emacs keymap) requires zsh 5.3 or newer.

Under zsh 5.2 and older, the zsh-default underlining of the matched portion of the buffer remains available, but zsh-syntax-highlighting's additional highlighting is unavailable. (Those versions of zsh do not provide enough information to allow computing the highlighting correctly.)

See issue #288 for details.

How are new releases announced?

There is currently no "push" announcements channel. However, the following alternatives exist:

How to tweak

Syntax highlighting is done by pluggable highlighter scripts. See the documentation on highlighters for details and configuration settings.