The Ops Community ⚙️

Emre for Z-Shell

Posted on • Originally published at dev.to on

✨〰️ ZI 〰️✨ Feature-rich Syntax Highlighting

ZI Swiss army knife


❮ ZI ❯ 🧙‍‍♀️ A Swiss Army Knife for Zsh.

Designed to glue everything together. 🔗

https://z.digitalclouds.dev | GitHub | Discussions | Localize


Fast-Syntax-Highlighting Themes (Zshell)


Recursive fast-syntax-highlighting, highlights code passed to sh -c

  • Installation
    • Manual
    • ZI
  • Features
    • Themes
    • Variables
    • Brackets
    • Conditions
    • Strings
    • here-strings
    • exec descriptor-variables
    • for-loops and alternate syntax (brace {/} blocks)
    • Function definitions
    • Recursive eval and $( ) highlighting
    • Chroma functions
    • Math-mode highlighting
    • Zcalc highlighting
    • Performance

📥 Installation

Post install try: fast-theme -t z-shell. To enable: fast-theme z-shell.


📕 Manual Installation

Clone the Repository.

git clone https://github.com/z-shell/F-Sy-H ~/path/to/fsh

Enter fullscreen mode Exit fullscreen mode

And add the following to your zshrc file.

source ~/path/to/fsh/F-Sy-H.plugin.zsh

Enter fullscreen mode Exit fullscreen mode

ZI

Add the following to your zshrc file.

zi light z-shell/F-Sy-H

Enter fullscreen mode Exit fullscreen mode

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

zi wait lucid for \
 atinit"ZI[COMPINIT_OPTS]=-C; zicompinit; zicdreplay" \
    z-shell/F-Sy-H \
 blockf \
    zsh-users/zsh-completions \
 atload"!_zsh_autosuggest_start" \
    zsh-users/zsh-autosuggestions

Enter fullscreen mode Exit fullscreen mode

Features

✴️ Themes

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

image1

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.

alt="image could not be loaded"

style="color:red;background-color:black;font-weight:bold" />

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

Top comments (0)