Awesome
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 the
git
command it is now maximally faithful, it follows thegit
command almost completely. Screencast
- 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
Installation
Manual
Clone the Repository.
git clone https://github.com/zdharma-continuum/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-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:
zinit 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.
antigen 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.
zgen load zdharma-continuum/fast-syntax-highlighting
Oh-My-Zsh
Clone the Repository.
git 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.