Fast syntax highlighting
Feature-rich syntax highlighting for ZSH
- [News](#news) - [Installation](#installation) - [Features](#features) - [Performance](#performance) The project is written primarily in Shell, distributed under the BSD 3-Clause "New" or "Revised" License license, first published in 2021. It has gained significant community traction with 1,708 stars and 92 forks on GitHub. Key topics include: syntax-highlighting, zinit, zsh.
Fast Syntax Highlighting (F-Sy-H) 
Feature rich syntax highlighting for Zsh.
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px"> <img src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/highlight-much.png" alt="image could not be loaded" style="color:red;background-color:black;font-weight:bold" /> </div>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 thegitcommand it is now
maximally faithful, it follows thegitcommand almost completely. Screencast
- A new architecture for defining the highlighting for specific commands: it now uses abstract definitions
Installation
Manual
Clone the Repository.
zshgit clone https://github.com/zdharma-continuum/fast-syntax-highlighting ~/path/to/fsh
And add the following to your zshrc file.
zshsource ~/path/to/fsh/fast-syntax-highlighting.plugin.zsh
Zinit
Add the following to your zshrc file.
zshzinit light zdharma-continuum/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:
zshzinit wait lucid for \ atinit"ZINIT[COMPINIT_OPTS]=-C; zicompinit; zicdreplay" \ zdharma-continuum/fast-syntax-highlighting \ blockf \ zsh-users/zsh-completions \ atload"!_zsh_autosuggest_start" \ zsh-users/zsh-autosuggestions
Antigen
Add the following to your zshrc file.
zshantigen bundle zdharma-continuum/fast-syntax-highlighting
Fig
Fig adds apps, shortcuts, and autocomplete to your existing terminal.
Install fast-syntax-highlighting in just one click.
<a href="https://fig.io/plugins/other/fast-syntax-highlighting_zdharma-continuum" target="_blank"><img src="https://fig.io/badges/install-with-fig.svg" /></a>
Zgen
Add the following to your .zshrc file in the same place you're doing your other zgen load calls in.
zshzgen load zdharma-continuum/fast-syntax-highlighting
Oh-My-Zsh
Clone the Repository.
zshgit clone https://github.com/zdharma-continuum/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}.
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):
Brackets
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px"> <img src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/brackets.gif" alt="image could not be loaded" style="color:red;background-color:black;font-weight:bold" /> </div>Conditions
Comparing to the project zsh-users/zsh-syntax-highlighting (the upper line):
Strings
Exact highlighting that recognizes quotings.
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px"> <img src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/ideal-string.png" alt="image could not be loaded" style="color:red;background-color:black;font-weight:bold" /> </div>here-strings
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px"> <img src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/herestring.png" alt="image could not be loaded" style="color:red;background-color:black;font-weight:bold" /> </div>exec descriptor-variables
Comparing to the project zsh-users/zsh-syntax-highlighting (the upper line):
for-loops and alternate syntax (brace {/} blocks)
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px">
<img
src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/for-loop-cmp.png"
alt="image could not be loaded"
style="color:red;background-color:black;font-weight:bold"
/>
</div>
Function definitions
Comparing to the project zsh-users/zsh-syntax-highlighting (the upper 2 lines):
Recursive eval and $( ) highlighting
Comparing to the project zsh-users/zsh-syntax-highlighting (the upper line):
Chroma functions
Highlighting that is specific for a given command.
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px"> <img src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/git_chroma.png" alt="image could not be loaded" style="color:red;background-color:black;font-weight:bold" /> </div>The chromas that are
enabled by default can be found
here.
Math-mode highlighting
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px"> <img src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/math.gif" alt="image could not be loaded" style="color:red;background-color:black;font-weight:bold" /> </div>Zcalc highlighting
<div style="width:100%;background-color:black;border:3px solid black;border-radius:6px;margin:5px 0;padding:2px 5px"> <img src="https://raw.githubusercontent.com/zdharma-continuum/fast-syntax-highlighting/master/images/zcalc.png" alt="image could not be loaded" style="color:red;background-color:black;font-weight:bold" /> </div>Performance
Performance differences can be observed in this Asciinema recording, where a 10 kB function is being edited.
Contributors
Showing top 12 contributors by commit count.
