🌀 Meta Plugins
z-shell/z-a-meta-plugins
An annex has the curated, optimal ice lists automatically applied. For more details refer to z-a-meta-plugins.plugin.zsh file.
- To create your group of plugins as meta-plugins propose them in a new issue.
信息
- Before using meta plugins, a meta plugins annex have to be installed. (
zi light-mode for z-a-meta-plugins
) - Prefix
@
used to avoid syntax conflicts. E.g:zi light-mode for @<meta-plugin-name>
- Before installing any plugin visit the original repository where available to verify that system is supported and meets other requirements.
Install meta-plugins
备注
To be able to use meta plugins, the annex has to be installed:
zi light z-shell/z-a-meta-plugins
Install annex meta plugins and a group of plugins with the same command:
zi light-mode for z-a-meta-plugins @annexes @ext-git @zsh-users
The following commands are examples of installing meta plugins:
zi light @annexes
zi light-mode for @annexes @zsh-users @console-tools
zi light-mode for @annexes skip'zsh-completions' @zsh-users \skip'vivid exa tig' @console-tools
Available meta-plugins
Meta plugin name | Consisting plugins |
---|---|
@annexes | bin-gem-node, readurl, patch-dl, rust, default-ice, unscope |
@annexes+ | @annexes + submods, test |
@z-shell | F-Sy-H, H-S-MW, zsh-diff-so-fancy, z-shell/zsh-select |
@z-shell+ | zconvey, zui, zflai |
@zsh-users | zsh-syntax-highlighting, zsh-autosuggestions, zsh-completions |
@zsh-users+fast | F-Sy-H, zsh-autosuggestions, zsh-completions |
@romkatv | powerlevel10k |
@zunit | color, revolver, zunit |
@sharkdp | fd, bat, hexyl, hyperfine, vivid |
@developer-tools | color, revolver, zunit, gitignore.plugin.zsh, tig |
@console-tools | dircolors-material (package), fd, bat, hexyl, hyperfine, vivid, exa, ripgrep, tig |
@fuzzy | fzf (package), fzy (package), skim, peco |
@fuzzy-src | fzf-go, fzy, skim-cargo, peco-go |
@ext-git | git-open, git-recent, git-my, git-quick-stats, git-now, git-extras, forgit |
@rust-utils | rust-toolchain, cargo-extensions |
@py-utils | pyenv (package) |
@prezto | PZTM::archive, PZTM::directory, PZTM::utility |
摘要
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.
Problem | Solution |
---|---|
(1) finding new plugins | the 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 environments | it'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 commands | the 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 "No files for compilation found." message and other, even such slight issues). |
Other unique benefits of the meta plugins annex:
Benefit | Description |
---|---|
Plugin dependencies | The 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-plugin | A 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 plugins | For 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. |