Je travaille beaucoup dans le terminal, j'ai donc beaucoup appris sur mon shell de choix, zsh. Quelles fonctionnalités de zsh utilisez-vous pour améliorer votre productivité au travail? L'un de mes favoris est l'auto-complétion multi-dir. Donc, au lieu de taper, cd /fo{tab}/ba{tab}/ba{tab}
je peux juste faire cd /fo/ba/ba{tab}
et sauvegarder autant de frappes!
command-line
shell
zsh
Frew Schmidt
la source
la source
Réponses:
Je viens de trouver ce petit bijou:
Cette forme de
cd
remplace toutes les occurrences deold
dans le chemin complet du répertoire présent parnew
et tente de remplacer le répertoire de travail par le chemin résultant.Par exemple, si votre répertoire de travail est
/home/larry/code/backrub/server
et que vous souhaitez passer à/home/sergei/code/backrub/server
, tout ce que vous avez à faire est:la source
Je vais m'en tenir aux choses que, autant que je sache, bash ne peut pas faire.
Achèvement de fantaisie. Oui, bash en a une partie, mais zsh a plus de commandes, est souvent plus précis et offre beaucoup plus de possibilités de configuration.
Le
**
glob, par exemple,**/foo
recherche les fichiers appelésfoo
dans les sous-répertoires de manière récursive. (Et***/foo
suit également les liens symboliques.) Deux caractères au lieu d’une longuefind
commande (ce qui est difficile à comprendre si certains noms de fichier incluent des caractères spéciaux tels que des espaces et des guillemets).Moins souvent, les qualificatifs glob comme dans
foo*(*)
(commefoo*
, mais ne conservent que les fichiers exécutables),foo(.)
(uniquement les fichiers normaux, pas les répertoires),foo(-@)
(uniquement les liens symboliques suspendus),foo*(m-5)
(uniquement les fichiers modifiés au cours des 5 dernières minutes),foo*(om[1])
(le dernier fichier modifié) , etc.autocd
: Taper un nom de répertoire en tant que commande y change (cd
ou enpushd
fonction de la façon dont vous l'avez configuré). Lacd
commande est trop longue de trois caractères! Je ne peux pas utiliser bash pendant plus de trente secondes sans ressentir la douleur. J'ai aussi quelques fonctions à caractère unique, telles quezmv
construit, etTant que j'y suis, le
noglob
construit.Les
precmd
etpreexec
fonctions crochet: J'utilisepreexec
pour définir le titre de mon terminal pour inclure la commande en cours d' exécution, etprecmd
de remplacer la commande avec son code de sortie. Quelque chose commebg
(pour que Ctrl + Z Ctrl + Z suspende un programme et le reprenne immédiatement en arrière-plan).setopt append_history autocd extended_glob no_match
la source
La capacité de zsh à compléter automatiquement des éléments autres que des fichiers et des répertoires.
Par exemple, avec le paquet git installé, git-sh {tab} affiche:
la source
J'aime beaucoup les pseudonymes globaux
laisse moi faire des choses comme
et obtenir de la pagination.
la source
Comme mentionné par d'autres, la complétion automatique de zsh est excellente.
Vous pouvez configurer votre propre autocomplétion pour des commandes personnalisées sans trop de tracas. Pour tabuler les noms d'utilisateur complets comme arguments à finger:
Autres options que j'aime bien définir:
Pushd et popd sont également très utiles.
Ennuis, les touches home et end ne fonctionnent pas par défaut sur zsh comme sur d’autres shells, mais vous pouvez résoudre ce problème.
la source
Activer la saisie automatique lors de l'utilisation
scp
sur un serveur distant.La bonne invite pour afficher des informations supplémentaires.
la source