Il y a quelque temps j’avais trouvé un .zshrc plutot complet et bien documenté. Mais avec toute les astuce que tu donne je voi bien qu’il lui manque des chose qui me semble bien pratique.
[code]# Fichier de configuration principal de zsh
Formation Debian GNU/Linux par Alexis de Lattre
################
1. Les alias
################
Gestion du ‘ls’ : couleur & ne touche pas aux accents
alias ls=‘ls --classify --tabsize=0 --literal --color=auto --show-control-chars --human-readable’
Gestion du ‘grep’ : couleur
alias grep=‘grep --color=auto’
Demande confirmation avant d’écraser un fichier
alias cp='cp --interactive’
alias mv='mv --interactive’
alias rm=‘rm --interactive’
Raccourcis pour ‘ls’
alias l='ls’
alias ll='ls -l’
alias la='ls -a’
alias lla=‘ls -la’
Quelques alias pratiques
alias c='clear’
alias less='less --quiet’
alias s='cd …'
alias cd…='cd …'
alias df='df --human-readable’
alias du='du --human-readable’
alias md='mkdir’
alias rd='rmdir’
alias j=‘jobs’
Pour des stats reseaux
alias ports=“lsof -i -n -P” # Voir les process qui utilisent une connection internet
alias estab=“ss -p | grep STA” # Voir seulement les sockets établis
alias netstat80=“netstat -plan|grep :80|awk {‘print $5’}|cut -d: -f 1|sort|uniq -c|sort -nk 1” # nombre de connections sur le port 80 du serveur par IP
alias openports=“netstat -nape --inet” # Voir les ports ouverts
alias netpid=“netstat -tlnp” # Voir le port qui écoute avec le PID du process associ?
alias appson=“netstat -lantp | grep -i stab | awk -F/ ‘{print $2}’ | sort | uniq” # Voir une liste des noms de process qui utilisent une connection
#######################################
2. Prompt et définition des touches
#######################################
’ end-of-line # Endean termcap, est codifiee K1 (upper left
fibindkey 'eyboard) dans le /etc/termcap. En me referant a l’entree
correspondant a mon terminal (par exemple ‘linux’) dans ce fichier, je
gnome-terminal~, c’est la sequence de caracteres qui sera envoyee au
if [ “$COLORTERM” = “gnome-terminal” ]ement au shell : a chaque fois que
then rencontres telle sequence de caractere, tu dois faire telle action.
Correspondance touches-fonction spécifiquen zshzle".
bindkey ‘^[OH’ beginning-of-line # Home
bindkey ‘^[OF’ end-of-line # End
findkey ‘^A’ beginning-of-line # Home
bindkey ‘^E’ end-of-line # End
Titre de la fenêtre d’un xterm # Del
case $TERM inlete-char # Del
xterm*) overwrite-mode # Insert
precmd () {print -Pn “\e]0;%n@%m: %~\a”}
;;’ history-search-forward # PgDn
esac
Prompt couleur (la couleur n’est pas la même pour le root et
Gestion de la couleur pour ‘ls’ (exportation de LS_COLORS)
if [ -x /usr/bin/dircolors ]
thenport PS1="%{%}%T %{%}%n%{%}@%{%}%m %{%}%~%{%}%#%{%} “
if [ -r ~/.dir_colors ]
thenrt PS1=”%{%}%T %{%}%n%{%}@%{%}%m %{%}%~%{%}%#%{%} "
eval "dircolors ~/.dir_colors
"
elif [ -r /etc/dir_colors ]
thenole linux, dans un screen ou un rxvt
eval "dircolors /etc/dir_colors
“creen” -o “$TERM” = “rxvt” ]
else
eval "dircolors
"ches-fonction spécifique
findkey ‘’ beginning-of-line # Home
fibindkey ‘’ end-of-line # End
fi
###########################################
3. Options de zsh (cf ‘man zshoptions’)
###########################################
Correspondance touches-fonction spécifique
Je ne veux JAMAIS de beeps
unsetopt beep
unsetopt hist_beep
unsetopt list_beep
>| doit être utilisés pour pouvoir écraser un fichier déjà existant ;
le fichier ne sera pas écrasé avec ‘>’
#unsetopt clobber
Ctrl+D est équivalent à ‘logout’
unsetopt ignore_eof
Affiche le code de sortie si différent de ‘0’
setopt print_exit_value
Demande confirmation pour ‘rm *’
unsetopt rm_star_silent
#Ignore la casse pour les commandes de base (ls, cd, etc)
setopt no_case_glob
Correction orthographique des commandes
Désactivé car, contrairement à ce que dit le “man”, il essaye de
corriger les commandes avant de les hasher
#setopt correct
Si on utilise des jokers dans une liste d’arguments, retire les jokers
qui ne correspondent à rien au lieu de donner une erreur
setopt nullglob
Schémas de complétion
- Schéma A :
1ère tabulation : complète jusqu’au bout de la partie commune
2ème tabulation : propose une liste de choix
3ème tabulation : complète avec le 1er item de la liste
4ème tabulation : complète avec le 2ème item de la liste, etc…
-> c’est le schéma de complétion par défaut de zsh.
Schéma B :
1ère tabulation : propose une liste de choix et complète avec le 1er item
de la liste
2ème tabulation : complète avec le 2ème item de la liste, etc…
Si vous voulez ce schéma, décommentez la ligne suivante :
#setopt menu_complete
Schéma C :
1ère tabulation : complète jusqu’au bout de la partie commune et
propose une liste de choix
2ème tabulation : complète avec le 1er item de la liste
3ème tabulation : complète avec le 2ème item de la liste, etc…
Ce schéma est le meilleur à mon goût !
Si vous voulez ce schéma, décommentez la ligne suivante :
#unsetopt list_ambiguous
(Merci à Youri van Rietschoten de m’avoir donné l’info !)
Options de complétion
Quand le dernier caractère d’une complétion est ‘/’ et que l’on
tape ‘espace’ après, le ‘/’ est effaçé
setopt auto_remove_slash
Ne fait pas de complétion sur les fichiers et répertoires cachés
unsetopt glob_dots
Traite les liens symboliques comme il faut
setopt chase_links
Quand l’utilisateur commence sa commande par ‘!’ pour faire de la
complétion historique, il n’exécute pas la commande immédiatement
mais il écrit la commande dans le prompt
setopt hist_verify
Si la commande est invalide mais correspond au nom d’un sous-répertoire
exécuter ‘cd sous-répertoire’
setopt auto_cd
L’exécution de “cd” met le répertoire d’où l’on vient sur la pile
setopt auto_pushd
Ignore les doublons dans la pile
setopt pushd_ignore_dups
N’affiche pas la pile après un “pushd” ou “popd”
setopt pushd_silent
“pushd” sans argument = “pushd $HOME”
setopt pushd_to_home
Les jobs qui tournent en tâche de fond sont nicé à ‘0’
unsetopt bg_nice
N’envoie pas de “HUP” aux jobs qui tourent quand le shell se ferme
unsetopt hup
###############################################
4. Paramètres de l’historique des commandes
###############################################
Nombre d’entrées dans l’historique
export HISTORY=1000
export SAVEHIST=1000
Fichier où est stocké l’historique
export HISTFILE=$HOME/.history
Ajoute l’historique à la fin de l’ancien fichier
#setopt append_history
Chaque ligne est ajoutée dans l’historique à mesure qu’elle est tapée
setopt inc_append_history
Ne stocke pas une ligne dans l’historique si elle est identique à la
précédente
setopt hist_ignore_dups
Supprime les répétitions dans le fichier d’historique, ne conservant
que la dernière occurrence ajoutée
#setopt hist_ignore_all_dups
Supprime les répétitions dans l’historique lorsqu’il est plein, mais
pas avant
setopt hist_expire_dups_first
N’enregistre pas plus d’une fois une même ligne, quelles que soient
les options fixées pour la session courante
#setopt hist_save_no_dups
La recherche dans l’historique avec l’éditeur de commandes de zsh ne
montre pas une même ligne plus d’une fois, même si elle a été
enregistrée
setopt hist_find_no_dups
###########################################
5. Complétion des options des commandes
###########################################
zstyle ‘:completion:’ matcher-list ‘’ 'm:{a-z}={A-Z}'
zstyle ':completion:’ max-errors 3 numeric
zstyle ‘:completion:*’ use-compctl false
autoload -U compinit
compinit[/code]
A quoi ressemble ton .zshrc MisterFreez ?