A Zinit-Zsh annex that allows to install plugins without specifying the GitHub user name. It works as follows:
-
On the installation of a plugin without any slashes (/) in its name the annex will query the GitHub API searching for */{the-name}, sorting on stars.
-
It first requires at least 10 forks on the candidates, then 2, then 0.
-
After finding the best result it sets it as the full remote-id of the plugin, storing the ID on disk for later automatic use.
-
For security, for such GH-API request to be made a newly added (by this annex) ice:
ghapi
is required to be given. -
Otherwise only the static database of mappings of short-plugin nicknames to the full scoped IDs will be searched. It contains many mappings, like, e.g.: vi-reg → zsh-vi-more/evil-registers, and also the usual basic unscopings of some of the popular plugins out there, like, e.g.: zsh-syntax-highlighting → zsh-users/zsh-syntax-highlighting and more.
- An example installation via 2 nicknames (env and vi-reg) and by one unscoped (i.e.: not using any GitHub username) ID that's being dynamically resolved by a request to GitHub API:
- An example call to the zinit scope … subcommand that is added by this annex. It allows to translate the unscoped IDs and the short-static nicknames into the full username/repository plugin ID.
Besides the GitHub-API querying, there's also a fixed, curated list of mappings of short names to the full GitHub IDs. The list currently consists of:
Short (Nick-) Name | GitHub ID / scoped ID |
---|---|
null | zdharma/null |
z-a-as-monitor | zinit-zsh/z-a-as-monitor |
as-monitor | zinit-zsh/z-a-as-monitor |
monitor | zinit-zsh/z-a-as-monitor |
z-a-patch-dl | zinit-zsh/z-a-patch-dl |
patch-dl | zinit-zsh/z-a-patch-dl |
z-a-submods | zinit-zsh/z-a-submods |
submods | zinit-zsh/z-a-submods |
z-a-rust | zinit-zsh/z-a-rust |
rust | zinit-zsh/z-a-rust |
z-a-bin-gem-node | zinit-zsh/z-a-bin-gem-node |
bin-gem-node | zinit-zsh/z-a-bin-gem-node |
bgn | zinit-zsh/z-a-bin-gem-node |
zinit-console | zinit-zsh/zinit-console |
console | zinit-zsh/zinit-console |
consolette | zinit-zsh/zinit-console |
archive | PZTM::archive |
arch | PZTM::archive |
directory | PZTM::directory |
dir | PZTM::directory |
environment | PZTM::environment |
env | PZTM::environment |
utility | PZTM::utility |
util | PZTM::utility |
fast-syntax-highlighting | zdharma/fast-syntax-highlighting |
f-sy-h | zdharma/fast-syntax-highlighting |
fsh | zdharma/fast-syntax-highlighting |
history-search-multi-word | zdharma/history-search-multi-word |
hsmw | zdharma/history-search-multi-word |
zui | zdharma/zui |
ZUI | zdharma/zui |
zconvey | zdharma/zconvey |
zconv | zdharma/zconvey |
zbrowse | zdharma/zbrowse |
zzcomplete | zdharma/zzcomplete |
zzcomp | zdharma/zzcomplete |
zzcom | zdharma/zzcomplete |
zsh-autosuggestions | zsh-users/zsh-autosuggestions |
autosuggestions | zsh-users/zsh-autosuggestions |
autosug | zsh-users/zsh-autosuggestions |
asug | zsh-users/zsh-autosuggestions |
z-asug | zsh-users/zsh-autosuggestions |
zsh-syntax-highlighting | zsh-users/zsh-syntax-highlighting |
z-sy-h | zsh-users/zsh-syntax-highlighting |
zsh-autocomplete | marlonrichert/zsh-autocomplete |
autocomplete | marlonrichert/zsh-autocomplete |
autocomp | marlonrichert/zsh-autocomplete |
aucom | marlonrichert/zsh-autocomplete |
acom | marlonrichert/zsh-autocomplete |
z-aucom | marlonrichert/zsh-autocomplete |
z-acom | marlonrichert/zsh-autocomplete |
zsh-autopair | hlissner/zsh-autopair |
autopair | hlissner/zsh-autopair |
aupair | hlissner/zsh-autopair |
aupa | hlissner/zsh-autopair |
z-aupa | hlissner/zsh-autopair |
evil-registers | zsh-vi-more/evil-registers |
evil-reg | zsh-vi-more/evil-registers |
vi-reg | zsh-vi-more/evil-registers |
vireg | zsh-vi-more/evil-registers |
vi-motions | zsh-vi-more/vi-motions |
evil-mot | zsh-vi-more/vi-motions |
vi-mot | zsh-vi-more/vi-motions |
vimot | zsh-vi-more/vi-motions |
vi-increment | zsh-vi-more/vi-increment |
evil-inc | zsh-vi-more/vi-increment |
vi-inc | zsh-vi-more/vi-increment |
viinc | zsh-vi-more/vi-increment |
vi-quote | zsh-vi-more/vi-quote |
evil-qte | zsh-vi-more/vi-quote |
vi-qte | zsh-vi-more/vi-quote |
viqte | zsh-vi-more/vi-quote |
directory-marks | zsh-vi-more/directory-marks |
evil-dir-marks | zsh-vi-more/directory-marks |
vi-dir-marks | zsh-vi-more/directory-marks |
vi-dirma | zsh-vi-more/directory-marks |
vidirma | zsh-vi-more/directory-marks |
fd | sharkdp/fd |
shark-fd | sharkdp/fd |
bat | sharkdp/bat |
shark-bat | sharkdp/bat |
exa | ogham/exa |
zsh-completions | zsh-users/zsh-completions |
completions | zsh-users/zsh-completions |
comps | zsh-users/zsh-completions |
You can let me know if you would like a name to be added to the list.
Simply load as a regular plugin, i.e.:
zinit light-mode for zinit-zsh/z-a-unscope
It should be done possibly early in the zshrc
, as otherwise the preceding
zinit
calls will not have the unscoped IDs resolved.