✨ La syntaxe "For"
La syntaxe for
est la plus populaire, plus concise, et plus optimisée. La commande unique fonctionnera de la même manière que l'invocation en syntaxe classique.
Il permet de fournir des ices communs/par défaut pour un ensemble de plugins ou de sourcer plusieurs fichiers avec des ices : src, pick, multisrc.
Pour trouver plus d'informations sur quoi que ce soit, utilisez search ou simplement CTRL+K.
zi light-mode for \ zsh-users/zsh-autosuggestions \ z-shell/F-Sy-H \ z-shell/H-S-MW \ pick"async.zsh" src"pure.zsh" \ sindresorhus/pure
Elle est mieux présentée par un exemple concret :
zi wait"3" lucid for as"null" \ sbin Fakerr/git-recall \ sbin paulirish/git-open \ sbin paulirish/git-recent \ sbin davidosomething/git-my \ make"PREFIX=$ZPFX install" iwata/git-now \ make"PREFIX=$ZPFX" tj/git-extras
La commande unique ci-dessus installe 6 plugins (git extension packages), avec les ices de base as "null" wait "3" lucid
qui sont communs à tous les plugins et 6 ices complémentaires spécifiques aux plugins.
Chargez quelques paquets binaires utiles à partir des versions GitHub de , et utilitaires :
zi for as"null" wait"2" lucid from"gh-r" \ mv"exa* -> exa" sbin ogham/exa \ mv"fd* -> fd" sbin"fd/fd" @sharkdp/fd \ sbin"fzf" junegunn/fzf
sbin'…'
est une ice ajouté par bin-gem-node annexe, il fournit la commande à la ligne de commande sans modification de$PATH
.- Si le nom de la commande est le même que le nom du plugin, le contenu de l'ice peut être ignoré.
Turbo charge certains plugins, sans les glaces spécifiques aux plugins :
zi wait lucid for \ hlissner/zsh-autopair \ urbainvaes/fzf-marks
Chargez deux fichiers Oh-My-Zsh comme snippets, en mode turbo :
zi wait lucid for \ OMZ::lib/git.zsh \ atload"unalias grv" \ OMZ::plugins/git/git.plugin.zsh
Ensemble de plugins populaires avec turbo et for:
zi wait lucid light-mode for \ atinit"zicompinit; zicdreplay" \ z-shell/F-Sy-H \ atload"_zsh_autosuggest_start" \ zsh-users/zsh-autosuggestions \ blockf atpull'zi creinstall -q .' \ zsh-users/zsh-completions
Syntaxe | Description |
---|---|
wait | Chargement 0 seconde (environ 5 ms exactement) après l'invite (turbo mode). |
lucid | Faites taire les messages sous l'invite ("Loaded {name of the plugin} "). |
light-mode | Chargez le plugin en mode light . 1. |
atpull'…' | Exécutez après avoir mis à jour le plugin - la commande dans la glace installera toutes les nouvelles complétions. |
atinit'…' | Exécutez le code avant chargement du plug-in. |
atload'…' | Exécutez le code après le chargement du plugin. |
zicompinit | Equivaut àautoload compinit; compinit . |
zicdreplay | Exécuter les appels de compdef … que les plugins ont fait. Plus ci-dessous 2. |
Oh-My-Zsh, turbo Oh-My-Zsh et la syntaxe for
Sans mode turbo et for
# A.setopt promptsubst# B.zi snippet OMZL::git.zsh# C.zi ice atload"unalias grv"zi snippet OMZP::git# D.zi for OMZL::prompt_info_functions.zsh OMZT::gnzh# E.zi snippet OMZP::colored-man-pages# F.zi ice as"completion"zi snippet OMZP::docker/_docker# G.zi ice atinit"zicompinit; zicdreplay"zi light z-shell/F-Sy-H
Avec mode turbo et for
# A.setopt promptsubst# B, C.zi wait lucid pour \ OMZL::git.zsh \ atload "unalias grv" \ OMZP::git# Fournir une simple invite jusqu'à ce que le thème se charge pour visualiser l'effet.PS1="READY >"# D.zi wait'!' lucid for \ OMZL::prompt_info_functions.zsh \ OMZT::gnzh# E, F, G.zi wait lucid for \ atinit"zicompinit; zicdreplay" \ z-shell/fast-syntax-highlighting \ OMZP::colored-man-pages \ as"completion" \ OMZP::docker/_docker
A - La plupart des thèmes utilisent cette option.
B, C - Les thèmes OMZ utilisent cette bibliothèque et certains autres utilisent également le plugin. Il fournit de nombreux alias - atload'…'
montre comment désactiver certains d'entre eux (par exemple : pour utiliser le programme rgburke/grv
).
D - Définissez le thème OMZ. Chargé séparément car le thème a besoin que le !
soit passé au wait
glace pour réinitialiser l'invite après le chargement du snippet en mode turbo.
E, F, G - Certains plugins :
- syntax-highlighting, chargée éventuellement en avance pour une meilleure expérience utilisateur).
- exemple de plugin fonctionnel.
- complétion de docker.
La configuration ci-dessus charge tout après l'invite, à cause de la glace précédente wait
. Cela s'appelle le mode turbo mode, il raccourcit le temps de démarrage de Zsh par 50%-80%, par exemple au lieu de 200 ms, il vous fera démarrer après 40 ms.
Essayez les deux configurations au quotidien pour constater la différence. Les fonctionnalités de ZI peuvent faire beaucoup plus que ce simple exemple.
Récapitulatif
En général, le mode turbo ne peut être activé que pour un sous-ensemble de plugins ou pour tous les plugins.
Les plug-ins de mise en évidence de syntaxe, tels que F-Sy-H ou zsh-syntax-highlighting, s'attendent théoriquement à être chargés en dernier, même après l'initialisation de l'achèvement en tant que fonction compinit
.
Cependant, en pratique, il suffit de s'assurer qu'un tel plugin est chargé après les plugins qui émettent compdef
- ce qui signifie essentiellement les complétions qui n'utilisent pas le fichier de fonction de début de soulignement ; l'initialisation de la complétion doit toujours être effectuée avant le plugin de mise en évidence syntaxique , d'où la glace atinit'…'
, qui chargera compinit
juste avant de charger le plugin, les plugins de mise en évidence syntaxique et de suggestions sont chargés tôt pour une meilleure expérience utilisateur.
- Ils ont été enregistrés et
compinit
peut être appelé plus tard.compinit
fournit la fonctioncompdef
, elle doit donc être exécutée avant d'émettre la reprisecompdef
s aveczicdreplay
.↩ - Ensuite, le suivi du plugin, la collecte des rapports d'activité, accessible via la sous-commande
zi report {plugin-name}
) est désactivé. Notez que pour le mode turbo, les gains de performance sont presque0
, donc dans ce mode, vous pouvez charger tous les plugins avec le suivi et la glacelight-mode
peut être supprimé de la commande.↩