/fsyh

fast-syntax-highlighting

Primary LanguageShellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

paypal paypal patreon
New: You can request a feature when donating, even fancy or advanced ones get implemented this way. There are reports about what is being done with the money received.

Fast Syntax Highlighting (F-Sy-H)

Feature rich syntax highlighting for Zsh.

image could not be loaded

Table of Contents

Other Contents

News

  • 15-06-2019
    • A new architecture for defining the highlighting for specific commands: it now uses abstract definitions instead of top-down, regular code. The first effect is the highlighting for the git command it is now maximally faithful, it follows the git command almost completely. Screencast

Installation

Manual

Clone the Repository.

git clone https://github.com/zdharma/fast-syntax-highlighting ~/path/to/fsh

And add the following to your zshrc file.

source ~/path/to/fsh/fast-syntax-highlighting.plugin.zsh

Zinit

Add the following to your zshrc file.

zinit light zdharma/fast-syntax-highlighting

Here's an example of how to load the plugin together with a few other popular ones with the use of Turbo, i.e.: speeding up the Zsh startup by loading the plugin right after the first prompt, in background:

zinit wait lucid for \
 atinit"ZINIT[COMPINIT_OPTS]=-C; zicompinit; zicdreplay" \
    zdharma/fast-syntax-highlighting \
 blockf \
    zsh-users/zsh-completions \
 atload"!_zsh_autosuggest_start" \
    zsh-users/zsh-autosuggestions

Antigen

Add the following to your zshrc file.

antigen bundle zdharma/fast-syntax-highlighting

Zgen

Add the following to your .zshrc file in the same place you're doing your other zgen load calls in.

zgen load zdharma/fast-syntax-highlighting

Oh-My-Zsh

Clone the Repository.

git clone https://github.com/zdharma/fast-syntax-highlighting.git \
  ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting

And add fast-syntax-highlighting to your plugin list.

Features

Themes

Switch themes via fast-theme {theme-name}.

image could not be loaded

Run fast-theme -t {theme-name} option to obtain the snippet above.

Run fast-theme -l to list available themes.

Variables

Comparing to the project zsh-users/zsh-syntax-highlighting (the upper line):

image could not be loaded
image could not be loaded

Brackets

image could not be loaded

Conditions

Comparing to the project zsh-users/zsh-syntax-highlighting (the upper line):

image could not be loaded

Strings

Exact highlighting that recognizes quotings.

image could not be loaded

here-strings

image could not be loaded

exec descriptor-variables

Comparing to the project zsh-users/zsh-syntax-highlighting (the upper line):

image could not be loaded

for-loops and alternate syntax (brace {/} blocks)

image could not be loaded

Function definitions

Comparing to the project zsh-users/zsh-syntax-highlighting (the upper 2 lines):

image could not be loaded

Recursive eval and $( ) highlighting

Comparing to the project zsh-users/zsh-syntax-highlighting (the upper line):

image could not be loaded

Chroma functions

Highlighting that is specific for a given command.

image could not be loaded

The chromas that are enabled by default can be found here.

Math-mode highlighting

image could not be loaded

Zcalc highlighting

image could not be loaded

Performance

Performance differences can be observed in this Asciinema recording, where a 10 kB function is being edited.

asciicast

IRC Channel

Channel #zinit@freenode is a support place for all author's projects. Connect to: chat.freenode.net:6697 (SSL) or chat.freenode.net:6667 and join #zinit.

Following is a quick access via Webchat IRC