DEV Community

❮ ZI ❯ for Z-Shell

Posted on • Originally published at github.zshell.dev

4 1

❮ ZI Annex - Eval ❯

❮ ZI ❯ Annex - Eval


Allows to cache the output of arbitrarily slow initialization command to speed up shell startup time.

eval preview

z.digitalclouds.dev | GitHub | Discussions | Localize


Annex provides a completion file with the prefix _zi, the 'shim' below which will run all available zi completions and the shim is assigned as ZIs completion with a compdef call

Synopsis:

zi recache <plugin/snippet>
Enter fullscreen mode Exit fullscreen mode

💡 Wiki

Installation

Simply load like a regular plugin:

zi light z-shell/z-a-eval
Enter fullscreen mode Exit fullscreen mode

After executing this command you can then use the new ice-mods provided by the annex.

How it works

The output of a slow initialization command is redirected to a file located within the plugin/snippets directory and sourced while loading. The next time the plugin/snippet is loaded, this file will be sourced skipping the need to run the initialization command.

The ice-modifier eval'' provided and handled by this annex creates a cache in the plugin/snippets root directory which stores the commands output.

This cache is regenerated when:

  • The plugin/snippet is updated.
  • The cache file is removed.
  • With the new ZI subcommand recache.

The optional preceding ! flag means to store command output regardless of exit code. Otherwise eval'' will avoid caching ouput of code which returns a non-zero exit code.

Example Invocations

Without z-a-eval

zi ice as"command" from"gh-r" mv"zoxide* -> zoxide"  \
  atclone"./zoxide init zsh > init.zsh"  atpull"%atclone" src"init.zsh" nocompile'!'
zi light ajeetdsouza/zoxide
Enter fullscreen mode Exit fullscreen mode
zi ice atclone"dircolors -b LS_COLORS > init.zsh" \
  atpull"%atclone" pick"init.zsh" nocompile'!' \
  atload'zstyle ":completion:*" list-colors “${(s.:.)LS_COLORS}”'
zi light trapd00r/LS_COLORS
Enter fullscreen mode Exit fullscreen mode

With z-a-eval

zi ice as"command" from"gh-r" mv"zoxide* -> zoxide" \
  eval"./zoxide init zsh"
zi light ajeetdsouza/zoxide
Enter fullscreen mode Exit fullscreen mode
zi ice eval"dircolors -b LS_COLORS" \
  atload'zstyle ":completion:*" list-colors “${(s.:.)LS_COLORS}”'
zi light trapd00r/LS_COLORS
Enter fullscreen mode Exit fullscreen mode

Without ZI

if [[ "${+commands[kubectl]}" == 1 ]]; then
  eval $(kubectl completion zsh)
fi
Enter fullscreen mode Exit fullscreen mode

With ZI and z-a-eval

## Updated during `zi update`
zi ice id-as"kubectl_completion" has"kubectl" \
  eval"kubectl completion zsh" run-atpull
zi light z-shell/null
Enter fullscreen mode Exit fullscreen mode

This repository compatible with ZI.


Have the best and leave the rest!

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs