Aller au contenu principal

✨ 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.

astuce

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
remarque
  • 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
SyntaxeDescription
waitChargement 0 seconde (environ 5 ms exactement) après l'invite (turbo mode).
lucidFaites taire les messages sous l'invite ("Loaded {name of the plugin}").
light-modeChargez 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.
zicompinitEquivaut àautoload compinit; compinit.
zicdreplayExé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
info

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 :

  1. syntax-highlighting, chargée éventuellement en avance pour une meilleure expérience utilisateur).
  2. exemple de plugin fonctionnel.
  3. 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.


  1. Ils ont été enregistrés et compinit peut être appelé plus tard. compinit fournit la fonction compdef , elle doit donc être exécutée avant d'émettre la reprise compdefs avec zicdreplay.
  2. 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 presque 0, donc dans ce mode, vous pouvez charger tous les plugins avec le suivi et la glace light-mode peut être supprimé de la commande.