Pure - Minimal Zsh promptt
Pure est un joli, minimal, rapide Zsh prompt qui se concentre sur la simplicité et la performance. Créé par Sindre Sorhus, Pure souligne l'esthétique propre, asynchrone Git information chercher, et affichage intelligent de seulement des informations pertinentes. Il représente la philosophie minimaliste dans la conception rapide tout en maintenant la fonctionnalité essentielle pour les flux de développement modernes.
Installation
Préalables
# Ensure Zsh is installed and set as default shell
zsh --version
echo $SHELL
# Set Zsh as default shell if needed
chsh -s $(which zsh)
# Verify Zsh configuration
echo $ZSH_VERSION
Méthodes d'installation
npm Installation (Recommandé)
# Install via npm
npm install --global pure-prompt
# Verify installation
which pure
# Check version
pure --version
```_
#### Installation manuelle
```bash
# Clone repository
mkdir -p "$HOME/.zsh"
git clone https://github.com/sindresorhus/pure.git "$HOME/.zsh/pure"
# Add to .zshrc
echo 'fpath+=$HOME/.zsh/pure' >> ~/.zshrc
echo 'autoload -U promptinit; promptinit' >> ~/.zshrc
echo 'prompt pure' >> ~/.zshrc
# Reload configuration
source ~/.zshrc
```_
#### Installation du gestionnaire de paquets
```bash
# Homebrew (macOS)
brew install pure
# Add to .zshrc
echo 'fpath+=/usr/local/share/zsh/site-functions' >> ~/.zshrc
echo 'autoload -U promptinit; promptinit' >> ~/.zshrc
echo 'prompt pure' >> ~/.zshrc
# Arch Linux
yay -S zsh-pure-prompt
# Gentoo
emerge app-shells/pure
# FreeBSD
pkg install zsh-pure
Oh Mon intégration Zsh
# Clone to Oh My Zsh custom themes
git clone https://github.com/sindresorhus/pure.git "$ZSH_CUSTOM/themes/pure"
# Symlink pure.zsh-theme
ln -s "$ZSH_CUSTOM/themes/pure/pure.zsh-theme" "$ZSH_CUSTOM/themes/pure.zsh-theme"
# Set theme in .zshrc
ZSH_THEME="" # Disable Oh My Zsh themes
echo 'fpath+=$ZSH_CUSTOM/themes/pure' >> ~/.zshrc
echo 'autoload -U promptinit; promptinit' >> ~/.zshrc
echo 'prompt pure' >> ~/.zshrc
Gestionnaire de plugins Zinit
# Add to .zshrc
zinit ice compile'(pure|async).zsh' pick'async.zsh' src'pure.zsh'
zinit light sindresorhus/pure
# Alternative with Oh My Zsh compatibility
zinit ice pick'async.zsh' src'pure.zsh'
zinit light sindresorhus/pure
Gestionnaire de plugins anticorps
# Add to .zshrc
antibody bundle mafredri/zsh-async
antibody bundle sindresorhus/pure
# Or use antibody bundle file
echo 'mafredri/zsh-async' >> ~/.zsh_plugins.txt
echo 'sindresorhus/pure' >> ~/.zsh_plugins.txt
antibody bundle < ~/.zsh_plugins.txt > ~/.zsh_plugins.sh
source ~/.zsh_plugins.sh
Configuration
Configuration de base
# Add to .zshrc after Pure installation
autoload -U promptinit; promptinit
prompt pure
# Reload configuration
source ~/.zshrc
Personnalisation des couleurs
# Customize colors in .zshrc
# Available colors: black, red, green, yellow, blue, magenta, cyan, white
# Or use color codes: 0-255
# Prompt symbol color
zstyle ':prompt:pure:prompt:success' color green
zstyle ':prompt:pure:prompt:error' color red
# Path color
zstyle ':prompt:pure:path' color blue
# Git branch color
zstyle ':prompt:pure:git:branch' color cyan
# Git dirty state color
zstyle ':prompt:pure:git:dirty' color yellow
# Git stash color
zstyle ':prompt:pure:git:stash' color magenta
# Command execution time color
zstyle ':prompt:pure:execution_time' color yellow
# User and host color (when shown)
zstyle ':prompt:pure:user' color magenta
zstyle ':prompt:pure:host' color cyan
# Virtualenv color
zstyle ':prompt:pure:virtualenv' color yellow
Personnalisation des symboles
# Customize symbols in .zshrc
# Prompt symbols
zstyle ':prompt:pure:prompt:success' symbol '❯'
zstyle ':prompt:pure:prompt:error' symbol '❯'
zstyle ':prompt:pure:prompt:continuation' symbol '…'
# Git symbols
zstyle ':prompt:pure:git:up_arrow' symbol '⇡'
zstyle ':prompt:pure:git:down_arrow' symbol '⇣'
zstyle ':prompt:pure:git:dirty' symbol '*'
zstyle ':prompt:pure:git:stash' symbol '≡'
# Alternative symbols
zstyle ':prompt:pure:prompt:success' symbol '→'
zstyle ':prompt:pure:prompt:error' symbol '✗'
zstyle ':prompt:pure:git:dirty' symbol '!'
zstyle ':prompt:pure:git:stash' symbol '
### Display Options
```bash
# Afficher/masquer le nom d'utilisateur et le nom d'hôte
zstyle ':prompt:pure:user' montrer vrai
zstyle ':prompt:pure:host' montrer vrai
# Afficher le nom d'utilisateur seulement lorsque différent de la valeur par défaut
zstyle ':prompt:pure:user' afficher auto
# Afficher le nom d'hôte uniquement sur SSH
zstyle ':prompt:pure:host' Afficher auto
# Afficher toujours le nom d'utilisateur et le nom d'hôte
zstyle ':prompt:pure:user' Afficher toujours
zstyle ':prompt:pure:host' spectacle toujours
# Ne jamais afficher le nom d'utilisateur et le nom d'hôte
zstyle ':prompt:pure:user' montrer false
zstyle ':prompt:pure:host' montrer false
Git Configuration
# Options d'affichage de l'état Git
# Afficher le nombre de cachettes Git
zstyle ':prompt:pure:git:stash' montrer vrai
# Cacher le nombre de cachettes Git
zstyle ':prompt:pure:git:stash' montrer false
# Montrer l'état sale immédiatement (pas d'async)
zstyle ':prompt:pure:git:dirty' vérifier vrai
# Désactiver le contrôle de l'état sale des performances
zstyle ':prompt:pure:git:dirty' vérifier faux
# Définir l'état Git fetch timeout (secondes)
zstyle ':prompt:pure:git:fetch' timeout 5
Execution Time Display
# Afficher le seuil de temps d'exécution de la commande (secondes)
zstyle ':prompt:pure:execution_time' seuil 2
# Désactiver l'affichage du temps d'exécution
zstyle ':prompt:pure:execution_time' afficher false
# Afficher toujours le temps d'exécution
zstyle ':prompt:pure:execution_time' montrer vrai
# Format de temps d'exécution personnalisé
format '%d & #160;:%02d & #160;:%02d '
Path Display
# segments de chemin maximum à afficher
zstyle ':prompt:pure:path' max_dirs 2
# Afficher le chemin complet
zstyle ':prompt:pure:path' max_dirs 0
# Symbole de troncation du chemin
zstyle ':prompt:pure:path' troncation '... '
# Désactiver la troncation du chemin
zstyle ':prompt:pure:path' troncation ' '
Advanced Configuration
Conditional Display
# Afficher user@host uniquement dans des conditions spécifiques
# Connexions SSH
si [[ -n $SSH_CONNECTION ]]; alors
zstyle ':prompt:pure:user' montrer vrai
zstyle ':prompt:pure:host' montrer vrai
Autre
zstyle ':prompt:pure:user' montrer false
zstyle ':prompt:pure:host' montrer false
Fi
# Détection de l'utilisateur racine
si [[ $UID -eq 0 ]]; alors
zstyle ':prompt:pure:user' montrer vrai
zstyle ':prompt:pure:prompt:succès' couleur rouge
Fi
# Différents environnements
Cas $HOST en
production*)
zstyle ':prompt:pure:host' montrer vrai
zstyle ':prompt:pure:host' couleur rouge
;;
mise en scène-*)
zstyle ':prompt:pure:host' montrer vrai
zstyle ':prompt:pure:host' couleur jaune
;;
développement*)
zstyle ':prompt:pure:host' montrer vrai
zstyle ':prompt:pure:host' couleur vert
;;
Esac
Custom Hooks
# Crochet de précommande
pure_preexec() \{
# Custom logic before command execution
écho "Exécuter: $1"
\}
# Crochet post-commande
pure_precmd() \{
# Custom logic after command execution
# This runs before prompt is displayed
\}
# Ajouter des crochets aux tableaux precmd et preexec
fonction_precmd+=(pure_precmd)
Préexec_fonctions+=(pure_preexec)
Integration with Other Tools
# Intégration Virtualenv
# Pure détecte et affiche automatiquement les environnements virtuels Python
# Personnaliser l'affichage virtualenv
zstyle ':prompt:pure:virtualenv' couleur cyan
format '[%s]'
# Affichage de la version Node.js (sur mesure)
pure_node_version() \{
si [[ -f package.json ]]; alors
local node_version=$(node --version 2>/dev/null)
si [[ -n $node_version ]];
écho " noeud:$node_version"
Fi
Fi
\}
# Ajouter à l'invite
RPROMPT='$(pure_node_version) '
Performance Optimization
# Désactiver cher Opérations Git
zstyle ':prompt:pure:git:fetch' timeout 1
zstyle ':prompt:pure:git:dirty' vérifier faux
# Réduire la fréquence de contrôle de l'état Git
zstyle ':prompt:pure:git:fetch' intervalle 60
# Désactiver l'async Statut Git pour les très grands dépôts
zstyle ':prompt:pure:git:async' active false
Customization Examples
Minimal Configuration
# Configuration ultra-minimale Pure
chargement automatique -U promptinit; promptinit
prompte pure
# Cacher tout sauf le chemin et l'invite
zstyle ':prompt:pure:user' montrer false
zstyle ':prompt:pure:host' montrer false
zstyle ':prompt:pure:git:stash' montrer false
zstyle ':prompt:pure:execution_time' afficher false
# Symboles simples
zstyle ':prompt:pure:prompt:succès' symbole '> '
zstyle ':prompt:pure:prompt:error' symbole '> '
zstyle ':prompt:pure:git:dirty' symbole '* '
Developer-Focused Configuration
# Développeur optimisé Configuration pure
chargement automatique -U promptinit; promptinit
prompte pure
# Afficher le temps d'exécution pour la surveillance des performances
zstyle ':prompt:pure:execution_time' seuil 1
zstyle ':prompt:pure:execution_time' couleur jaune
# Informations Git améliorées
zstyle ':prompt:pure:git:stash' montrer vrai
zstyle ':prompt:pure:git:dirty' vérifier vrai
zstyle ':prompt:pure:git:branche' couleur cyan
zstyle ':prompt:pure:git:dirty' couleur rouge
# Afficher user@host pour le contexte
zstyle ':prompt:pure:user' afficher auto
zstyle ':prompt:pure:host' Afficher auto
# Symboles personnalisés pour une meilleure visibilité
zstyle ':prompt:pure:prompt:succès' '
zstyle ':prompt:pure:prompt:error' symbole ' '
zstyle ':prompt:pure:git:up_arrow' symbole '↑ '
zstyle ':prompt:pure:git:down_arrow' symbole '↓ '
Production Environment Configuration
# Sécurité de la production Configuration pure
chargement automatique -U promptinit; promptinit
prompte pure
# Afficher toujours user@host pour la sensibilisation à la sécurité
zstyle ':prompt:pure:user' montrer vrai
zstyle ':prompt:pure:host' montrer vrai
zstyle ':prompt:pure:user' couleur rouge
zstyle ':prompt:pure:host' couleur rouge
# Marque d'erreur importante
zstyle ':prompt:pure:prompt:error' couleur rouge
zstyle ':prompt:pure:prompt:error' symbole '. '
# Afficher le temps d'exécution pour les pistes d'audit
zstyle ':prompt:pure:execution_time' seuil 0
zstyle ':prompt:pure:execution_time' couleur jaune
# Conservateur Paramètres Git
zstyle ':prompt:pure:git:fetch' timeout 10
zstyle ':prompt:pure:git:dirty' vérifier vrai
Multi-line Configuration
# Multiligne Invitation pure
chargement automatique -U promptinit; promptinit
prompte pure
# Fonction rapide personnalisée pour multi-ligne
pure_setup_multiline() \{
# First line: path and git info
PROMPT='%F\{bleu\}%~%f$(pure_git_info)
%F\{magenta\} '
# Right prompt: execution time and virtualenv
RPROMPT='$(pure_execution_time)$(pure_virtualenv) '
\}
# La configuration rapide de Override Pure
pure_setup_multiline
Integration with Development Tools
Git Integration
# Amélioration Affichage de l'état Git
zstyle ':prompt:pure:git:stash' montrer vrai
zstyle ':prompt:pure:git:dirty' vérifier vrai
# Git alias qui fonctionnent bien avec Pure
alias gs='git status --short '
alias gd='git diff '
alias gl='git log --oneline - 10'
alias gb='git branche -v '
# Crochets Git pour l'optimisation pure
# .git/hooks/post-checkout
#!/bin/sh
# Déclencheur pur État Git rafraîchi
tuer -USR1 $
Docker Integration
# Affichage du contexte Docker (ajout personnalisé)
pure_docker_context() \{
si commande -v docker >/dev/null 2>&1; alors
contexte local=$(contexte docker afficher 2>/dev/null)
si [[ $context != "default" ]]; alors
écho "docker:$context"
Fi
Fi
\}
# Ajouter à l'invite de droite
RPROMPT='$(pure_docker_context)$RPROMPT '
Kubernetes Integration
# Affichage du contexte Kubernetes (ajout personnalisé)
pure_k8s_context() \{
si commande -v kubectl >/dev/null 2>&1; alors
contexte local=$(kubectl config current-context 2>/dev/null)
local namespace=$(kubectl config view --minify --output 'jsonpath=\{..namespace\}' 2>/dev/null)
si [[ -n $context ]];
echo " k8s:$context$\{namespace:+/$namespace\}"
Fi
Fi
\}
# Ajouter à l'invite de droite
RPROMPT='$(pure_k8s_context)$RPROMPT '
Python Virtual Environment
# Pure détecte automatiquement les environnements virtuels
# Personnaliser l'affichage virtualenv
zstyle ':prompt:pure:virtualenv' couleur verte
zstyle ':prompt:pure:virtualenv' format '(%s) '
# Soutien à l'environnement de Conda (sur mesure)
pure_conda_env() \{
si [[ -n $CONDA_DEFAULT_ENV ]]; puis
"($CONDA_DEFAULT_ENV) "
Fi
\}
# Override virtualenv affichage pour inclure Conde
PROMPT='$(pure_conda_env)$PROMPT '
Troubleshooting
Common Issues
# Sans chargement
# Vérifiez si l'invite est chargée
chargement automatique -U promptinit; promptinit
# Verify Pure est disponible
prompt -l.grep pure
# Force à recharger Pure
prompte pure
# Vérifier les conflits avec d'autres thèmes rapides
# Désactiver les thèmes Oh My Zsh
ZSH_THÈME"
# Effacer les paramètres rapides existants
non défini PROMPT RPROMPT PS1 PS2
Performance Issues
# Désactiver cher Opérations Git
zstyle ':prompt:pure:git:fetch' timeout 1
zstyle ':prompt:pure:git:dirty' vérifier faux
# Vérifiez le lent Dépôts git
temps git statut
# Optimiser Configuration Git
git config --core global. précharge vrai
git config --core global. fscache vrai
git config --global gc.auto 256
# Démarrage du profil Zsh
temps zsh -i -c sortie
Async Issues
# Vérifier si la bibliothèque async est chargée
qui async_init
# Réinstaller la dépendance async
npm install --global pure-prompt
# Installation manuelle d'async
clone git https://github.com/mafredri/zsh-async.git ~/.zsh/async
echo 'source Le nombre d'heures travaillées dans le cadre d'un programme de formation continue a augmenté.
Color Issues
# Vérifiez le support de couleur du terminal
echo $TERM
couleurs de tput
# Sortie couleur d'essai
pour i dans \{0..255\}; imprimer -Pn "%F\{$i\}"%f"; fait; écho
# Réinitialiser les paramètres de couleur
-d ':prompt:pure:*' couleur
# Utiliser les couleurs de base pour la compatibilité
zstyle ':prompt:pure:prompt:succès' couleur vert
zstyle ':prompt:pure:prompt:error' couleur rouge
zstyle ':prompt:pure:path' couleur bleu
Best Practices
Configuration Management
# Conserver la configuration Pure dans un fichier séparé
# -/.config/pure/config.zsh
chargement automatique -U promptinit; promptinit
prompte pure
# Configuration des couleurs
zstyle ':prompt:pure:prompt:succès' couleur vert
zstyle ':prompt:pure:prompt:error' couleur rouge
zstyle ':prompt:pure:path' couleur bleu
zstyle ':prompt:pure:git:branche' couleur cyan
# Source de .zshrc
source ~/.config/pure/config.zsh
# Contrôle des versions Configuration pure
git ajouter ~/.config/pure/config.zsh
git commit -m "Ajouter une configuration rapide"
Environment-Specific Settings
# Paramètres différents pour différents environnements
Cas $HOST en
Travail*)
zstyle ':prompt:pure:user' montrer vrai
zstyle ':prompt:pure:host' montrer vrai
zstyle ':prompt:pure:execution_time' seuil 1
;;
personnel*)
zstyle ':prompt:pure:user' montrer false
zstyle ':prompt:pure:host' montrer false
zstyle ':prompt:pure:execution_time' seuil 5
;;
Esac
# Configuration spécifique à SSH
si [[ -n $SSH_CONNECTION ]];
zstyle ':prompt:pure:user' montrer vrai
zstyle ':prompt:pure:host' montrer vrai
zstyle ':prompt:pure:host' couleur jaune
Fi
Performance Guidelines
# Optimiser pour les grands dépôts
si [[ $(git rev-list --count HEAD 2>/dev/null||echo 0) -gt 10000 ]]; alors
zstyle ':prompt:pure:git:dirty' vérifier faux
zstyle ':prompt:pure:git:fetch' timeout 1
Fi
# Conditionnel Vérification de l'état de Git
zstyle ':prompt:pure:git:dirty' vérifier vrai
zstyle ':prompt:pure:git:fetch' timeout 3
# Configuration minimale pour les systèmes lents
zstyle ':prompt:pure:execution_time' afficher false
zstyle ':prompt:pure:git:stash' montrer false
Security Considerations
# Cacher les informations sensibles dans les captures d'écran/enregistrements
zstyle ':prompt:pure:user' montrer false
zstyle ':prompt:pure:host' montrer false
# Afficher le contexte dans les environnements de production
si [[ $HOST =~ "prod" ]]; alors
zstyle ':prompt:pure:user' montrer vrai
zstyle ':prompt:pure:host' montrer vrai
zstyle ':prompt:pure:host' couleur rouge
Fi
# Évitez d'afficher des chemins sensibles
zstyle ':prompt:pure:path' max_dirs 2
Pure represents the essence of minimalist prompt design, providing essential information without visual clutter. Its asynchronous Git status fetching, intelligent display logic, and extensive customization options make it an excellent choice for developers who value clean aesthetics and optimal performance. Whether you prefer the default minimal appearance or customize it extensively, Pure maintains its core philosophy of showing only what matters while staying fast and responsive.
### Options d'affichage
Git Configuration
### Configuration Git
Execution Time Display
### Affichage du temps d'exécution
Path Display
### Affichage du chemin
Advanced Configuration
Conditional Display
## Configuration avancée
### Affichage conditionnel
Custom Hooks
### Crochets personnalisés
Integration with Other Tools
### Intégration avec d'autres outils
Performance Optimization
### Optimisation des performances
Customization Examples
Minimal Configuration
## Exemples de personnalisation
### Configuration minimale
Developer-Focused Configuration
### Configuration axée sur le développeur
Production Environment Configuration
### Configuration de l'environnement de production
Multi-line Configuration
### Configuration multiligne
Integration with Development Tools
Git Integration
## Intégration avec les outils de développement
### Intégration Git
Docker Integration
### Intégration Docker
Kubernetes Integration
### Kubernetes Intégration
Python Virtual Environment
### Python Environnement virtuel
Troubleshooting
Common Issues
## Dépannage
### Questions communes
Performance Issues
### Problèmes de performance
Async Issues
### Questions relatives à Async
Color Issues
### Problèmes de couleur
Best Practices
Configuration Management
## Meilleures pratiques
### Gestion de la configuration
Environment-Specific Settings
### Paramètres spécifiques à l'environnement
Performance Guidelines
### Lignes directrices en matière de résultats
Security Considerations
### Considérations en matière de sécurité
Pure represents the essence of minimalist prompt design, providing essential information without visual clutter. Its asynchronous Git status fetching, intelligent display logic, and extensive customization options make it an excellent choice for developers who value clean aesthetics and optimal performance. Whether you prefer the default minimal appearance or customize it extensively, Pure maintains its core philosophy of showing only what matters while staying fast and responsive.
```
Pure représente l'essence du design rapide minimaliste, fournissant des informations essentielles sans encombre visuel. Son statut asynchrone Git, sa logique d'affichage intelligente et ses nombreuses options de personnalisation en font un excellent choix pour les développeurs qui apprécient l'esthétique propre et les performances optimales. Que vous préfériez l'apparence minimale par défaut ou la personnaliser largement, Pure maintient sa philosophie fondamentale de montrer seulement ce qui compte tout en restant rapide et réactif.