====== ZSH ======
* [[https://stackoverflow.com/questions/19901044/what-is-k-f-in-oh-my-zsh-theme]]
* Syntaxe pour les thèmes de prompt: [[http://www.manpagez.com/man/1/zshmisc/]]
* [[https://vincent.bernat.ch/fr/blog/2019-zsh-async-vcs-info]]
* [[https://blog.stephane-robert.info/docs/admin-serveurs/linux/shells-linux/zsh/|Maîtrisez Zsh]]
==== Exécuter une commande après chaque commande saisie ====
[[https://superuser.com/questions/735660/whats-the-zsh-equivalent-of-bashs-prompt-command|Source]]
Normalement, Bash dispose de la variable d'environnement ''$PROMPT_COMMAND'' pour cela, mais elle n'existe pas en ZSH. Il est donc nécessaire d'émuler son comportement:
export PROMPT_COMMAND='pwd > "${XDG_RUNTIME_DIR}/.cwd"'
precmd() { eval "$PROMPT_COMMAND" }
==== Désactiver la confirmation de rm * ====
[[https://stackoverflow.com/questions/27988160/why-does-rm-f-ask-me-for-confirmation-on-zsh|Source]]
setopt rmstarsilent
==== Exécuter une fonction à chaque changement de dossier ====
function chpwd() {
echo "PWD changed !"
}
==== Plugins ====
* [[https://github.com/zsh-users/zsh-syntax-highlighting|zsh-syntax-highlighting]]: colorie la syntaxe des commandes saisies
* [[https://github.com/zsh-users/zsh-autosuggestions|zsh-autosuggestions]]: affiche des suggestions basées sur les commandes précédentes
==== Script lu lors d'une exécution en SSH ====
Le fichier ''~/.zshrc'' n'est pas lu lorsqu'on fait ''ssh server command''. À la place, c'est le fichier ''~/.zshenv'' qui est lu (pas de shabang au début).
L'équivalent de ''~/.bash_profile'' est ''~/.zprofile''. Pour que les émulateurs de terminal le charge à chaque lancement d'un terminal, il faut activer l'option pour que ce soit un shell de connexion qui soit utilisé.
[[https://github.com/pyenv/pyenv/wiki/Unix-shell-initialization#zsh]]
* [[https://blog.flowblok.id.au/2013-02/shell-startup-scripts.html|Shell startup scripts]]
==== Oh-my-zsh ====
=== Mettre à jour manuellement ===
[[https://blog.liplex.de/manually-update-oh-my-zsh/|Source]]
omz update
upgrade_oh_my_zsh # seems to be deprecated
==== Git prompt ====
Le désactiver sur un dépôt en particulier ([[https://github.com/ohmyzsh/ohmyzsh/issues/3284|source]]):
git config oh-my-zsh.hide-status 1
==== Date dans l'historique des commandes ====
history -f