Fish shell like syntax highlighting for Zsh.
Go to file
2020-08-09 11:07:04 +00:00
docs docs: regexp highlighter: Fix a wrong associative array name in the example. 2020-07-01 12:55:43 +00:00
highlighters brackets: Optimize the character iteration 2020-07-14 20:19:40 +00:00
images Highlight redirections by default, and add that to the examples in README. 2020-02-28 22:49:02 +00:00
tests Merge remote-tracking branch 'origin/master' into feature/redrawhook 2020-07-14 01:57:55 +00:00
.editorconfig editorconfig: Fix Makefile settings 2020-04-12 02:59:39 +00:00
.gitattributes versionstamp: Set up '.revision-hash' file. 2015-10-19 07:21:20 +00:00
.gitignore docs: Create all.md 2015-11-24 00:22:26 -06:00
.revision-hash versionstamp: Set up '.revision-hash' file. 2015-10-19 07:21:20 +00:00
.travis.yml CI += zsh-5.8 2020-05-26 17:52:17 +00:00
.version Post-release version number bump. 2020-07-14 21:33:52 +00:00
changelog.md On the feature/redrawhook branch, changelog: Add entries for issues fixed by this branch. 2020-07-14 23:20:29 +00:00
COPYING.md Bump copyright years. 2020-01-16 17:19:25 +00:00
HACKING.md Use the new, unreleased zsh 'memo=' feature to remove only our own entries from $region_highlight. 2020-07-14 00:32:36 +00:00
INSTALL.md docs: Fix obs-repository link 2020-06-15 00:23:05 -05:00
Makefile make test: Re-enable syntax highlighting of TAP output in interactive runs 2020-03-15 18:10:18 +00:00
README.md docs: Track making the new codepath conditional upon the 'memo=' feature. 2020-08-09 10:56:18 +00:00
release.md release.md: Update with the step that was missed in 0.7.0. 2020-02-28 21:33:51 +00:00
zsh-syntax-highlighting.plugin.zsh driver: Stop requiring function_argzero. 2016-06-10 15:18:46 +00:00
zsh-syntax-highlighting.zsh On the feature/redrawhook branch, advise its users that they can switch back to master. 2020-08-09 11:07:04 +00:00

zsh-syntax-highlighting Build Status

Fish shell-like syntax highlighting for Zsh.

Requirements: zsh 4.3.11+.

This package provides syntax highlighting for the shell zsh. It enables
highlighting 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

Before: Screenshot #4.1


After:  Screenshot #4.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 works by hooking into the Zsh Line Editor (ZLE) and
computing syntax highlighting for the command-line buffer as it stands at the
time z-sy-h's hook is invoked.

In zsh 5.2 and older,
zsh-syntax-highlighting.zsh hooks into ZLE by wrapping ZLE widgets. It must
be sourced after all custom widgets have been created (i.e., after all zle -N
calls and after running compinit) in order to be able to wrap all of them.
Widgets created after z-sy-h is sourced will work, but will not update the
syntax highlighting.

In zsh newer than 5.8 (not including 5.8 itself),
zsh-syntax-highlighting uses the add-zle-hook-widget facility to install
a zle-line-pre-redraw hook. Hooks are run in order of registration,
therefore, z-sy-h must be sourced (and register its hook) after anything else
that adds hooks that modify the command-line buffer.

Highlighting the command line during an incremental history search (by default bound to
to Ctrl+R in zsh's emacs keymap) requires zsh 5.4 or newer.

Under zsh versions older than 5.4, 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 issues #288 and #415 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.