Go to file
Takeshi Banse 0948c3d676 Introduce _zsh_add-highlighter.
For easily extending the highlighting behavior, split the
actual highlighting function into some pieces.

For example "_zsh_main-highlight" transformed into,

1) An actual highlighting function which updates the
`region_highlight` on its own. (_zsh_main-highlight)
2) A predicate which determines whether its highlighting function
(in this case `_zsh_main-highlight`) should be called or not.
(_zsh_buffer-modified-p)

Likewise, `_zsh_highlight-bracket-match` and
`_zsh_highlight-bracket-match-p` are born.

Eventually, `_zsh_highlight-zle-buffer` coordinates above these
functions and maintain some internal state variables.

Finally, added `_zsh_add-highlighter` a little syntactic-sugar-ish
function to register the highlighting functions in an appropriate manner.

Signed-off-by: Takeshi Banse <takebi@laafc.net>
2011-01-16 20:32:53 +09:00
tests Add a mechanism for testing the correctness of the highlighting. 2011-01-10 23:46:27 +01:00
COPYING Add BSD license 2011-01-10 10:11:35 +01:00
README.md Merge branch 'celtic-master' 2011-01-08 13:09:56 +01:00
zsh-syntax-highlighting.plugin.zsh Added oh-my-zsh zsh-syntax-highlighting plugin. 2011-01-06 05:47:42 +08:00
zsh-syntax-highlighting.zsh Introduce _zsh_add-highlighter. 2011-01-16 20:32:53 +09:00

zsh-syntax-highlighting Project status

Fish shell like syntax highlighting for Zsh.

Requirements: zsh 4.3.9 or superior.

Try it

Here is a one-liner to try it without installing or modifying anything:

wget --no-check-certificate --output-document=/tmp/zsh-syntax-highlighting.zsh https://github.com/nicoulaj/zsh-syntax-highlighting/raw/master/zsh-syntax-highlighting.zsh && . /tmp/zsh-syntax-highlighting.zsh

Install it

In your ~/.zshrc

  • Download the script or clone this repository:

    git clone git://github.com/nicoulaj/zsh-syntax-highlighting.git
    
  • 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:

    cd ~/.oh-my-zsh/plugins/
    git clone git://github.com/nicoulaj/zsh-syntax-highlighting.git
    
  • Activate the plugin in ~/.zshrc (in last position):

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

    source ~/.zshrc
    

Tweak it

Optionally, you can override the default styles used for highlighting. The styles are declared in the ZSH_HIGHLIGHT_STYLES array. You can override styles this way:

# 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'

You can tweak the styles used to colorize matching brackets by overriding the ZSH_HIGHLIGHT_MATCHING_BRACKETS_STYLES.

ZSH_HIGHLIGHT_MATCHING_BRACKETS_STYLES=(
  'fg=blue,bold'    # Style for first level of imbrication
  'fg=green,bold'   # Style for second level of imbrication
  'fg=magenta,bold' # etc... Put as many styles as you wish, or leave
  'fg=yellow,bold'  # empty to disable brackets matching.
  'fg=cyan,bold'
)

This must be done after the script is sourced, otherwise your styles will be overwritten. The syntax for declaring styles is documented here.

Authors / Greetings