zsh-syntax-highlighting/README.md

3.1 KiB

zsh-syntax-highlighting

Fish shell 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.

Screenshot

How to install

Using packages

In your ~/.zshrc

  • Clone this repository:

      git clone git://github.com/zsh-users/zsh-syntax-highlighting.git
    

    (or download a snapshot)

  • Source the script at the end of ~/.zshrc:

      source /path/to/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
    
  • Source ~/.zshrc to take changes into account:

      source ~/.zshrc
    

With oh-my-zsh

  • Download the script or clone this repository in oh-my-zsh plugins directory:

      git clone git://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
    
  • Activate the plugin in ~/.zshrc:

      plugins=( [plugins...] zsh-syntax-highlighting)
    
  • Source ~/.zshrc to take changes into account:

      source ~/.zshrc
    

Note that zsh-syntax-highlighting must be the last plugin sourced, so make it the last element of the $plugins array.

System-wide installation

Either of the above methods is suitable for a single-user installation, which requires no special privileges. If, however, you desire to install zsh-syntax-highlighting system-wide, you may do so by running make install and directing your users to add source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh in their .zshrcs.

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.

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 highlighters directory for documentation and configuration settings.