メインコンテンツまでスキップ

🌀 Meta Plugins

An annex has the curated, optimal ice-modifiers lists automatically applied. For more details refer to z-a-meta-plugins.plugin.zsh file.

tip
  • To create your group of plugins as meta-plugins propose them in a new issue
  • Prefix @ used to avoid syntax conflicts, e.g: zi light @<meta-plugin-name>
  • Before installing any plugin visit the original repository where available to verify that system is supported and meets other requirements

Usage of meta-plugins

The following snippets are examples of how to install meta-plugins:

zi light @annexes
zi light-mode for @annexes @zsh-users @console-tools
zi light-mode for z-a-meta-plugins \
@annexes @ext-git @zsh-users
zi light-mode for @annexes \
skip'zsh-completions' @zsh-users \
skip'vivid exa tig' @console-tools

Available meta-plugins

Meta-plugin nameConsisting plugins
@annexesbin-gem-node, readurl, patch-dl, rust, default-ice, unscope
@annexes+@annexes + submods, test
@console-toolsdircolors-material (package), fd, bat, hexyl, hyperfine, vivid, exa, ripgrep, tig
@developer-toolscolor, revolver, zunit, gitignore.plugin.zsh, tig
@ext-gitgit-open, git-recent, git-my, git-quick-stats, git-now, git-extras, forgit
@fuzzyfzf (package), fzy (package), skim, peco
@fuzzy-srcfzf-go, fzy, skim-cargo, peco-go
@preztoPZTM::archive, PZTM::directory, PZTM::utility
@py-utilspyenv (package)
@romkatvpowerlevel10k
@rust-utilsrust-toolchain, cargo-extensions
@sharkdpfd, bat, hexyl, hyperfine, vivid
@z-shellF-Sy-H, H-S-MW, zsh-diff-so-fancy
@z-shell+zsh-select, zconvey, zui, zflai
@zsh-userszsh-syntax-highlighting, zsh-autosuggestions, zsh-completions
@zsh-users+fastF-Sy-H, zsh-autosuggestions, zsh-completions, z-shell/zsh-fancy-completions
@zunitcolor, revolver, zunit

Summary of the meta-plugins

It consumes time to:

  • Constantly, over and over collect some new interesting plugins to install/load.
  • Over and over reconstruct the new findings on the new machines.
  • Constantly extend and tweak the ice list of each plugin, so that it's hard on the eyes, especially for an outsider.
ProblemSolution
(1) finding new pluginsThe annex contains a curated, broad list of plugins, e.g.: all the console tools like fd, fzf, exa, ripgrep, etc.,
(2) reconstructing the findings in new environmentsIt's easy to say and memorize e.g.: zi for console-tools – one label pulls a group of plugins and also the curated, optimal, default ice lists for each of them,
(3) constant increase of complexity of the commandsThe provided, hopefully, best/optimal ices for each plugin are handled transparently and automatically; care is given to each ice list so that the plugin loads without any glitches (e.g.: without the "No files for compilation found." message and other, even such slight issues).

Other unique benefits of the meta-plugins annex:

Benefit説明
Plugin dependenciesThe meta-plugins implement a dependency mechanism: selecting a from-source built ogham/exa will automatically pull in also the Rust compiler (available under the meta-plugin name: rust-toolchain).
Flexible disabling of chosen sub-plugins in any meta-pluginA meta-plugin can contain many sub-plugins and it's possible to skip installing some of them by the skip'plugin-1 plugin-2…' ice, e.g.: zi skip'ripgrep fd' for console-tools. This way despite that some of the meta plugins are broad the user still has control over what's and how much is being installed.
Common from-source meta pluginsFor the plugins that provide the binary programs it is often the case that a meta-plugin exists that'll build the program from the source (e.g.: fuzzy meta-plugin and its fuzzy-src counterpart). This might be handy e.g.: if there's no binary for our machine.

Install meta-plugins

Add the following snippet in the .zshrc file:

zi light z-shell/z-a-meta-plugins

This will register the skip'…' ice-modifier.