❮ ZI ❯ 🧙♀️ A Swiss Army Knife for Zsh.
Designed to glue everything together. 🔗
Website | GitHub | Discussions | Localize | Wiki Annexes
Allows to cache the output of arbitrarily slow initialization command to speed up shell startup time.
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>
📥 Installation
Simply load like a regular plugin:
zi light z-shell/z-a-eval
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. Otherwiseeval''
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
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
With z-a-eval
zi ice as"command" from"gh-r" mv"zoxide* -> zoxide" \
eval"./zoxide init zsh"
zi light ajeetdsouza/zoxide
zi ice eval"dircolors -b LS_COLORS" \
atload'zstyle ":completion:*" list-colors “${(s.:.)LS_COLORS}”'
zi light trapd00r/LS_COLORS
Without ZI
if [["${+commands[kubectl]}" == 1 ]]; then
eval $(kubectl completion zsh)
fi
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
This repository compatible with ZI.
Top comments (0)