# /etc/zshrc ou ~/.zshrc # Fichier de configuration principal de zsh # Formation Debian GNU/Linux par Alexis de Lattre # http://www.via.ecp.fr/~alexis/formation-linux/ # # 2. Prompt et D�finition des touches # # exemple : ma touche HOME, cf man termcap, est codifiee K1 (upper left # key on keyboard) dans le /etc/termcap. En me referant a l'entree # correspondant a mon terminal (par exemple 'linux') dans ce fichier, je # lis : K1=\E[1~, c'est la sequence de caracteres qui sera envoyee au # shell. La commande bindkey dit simplement au shell : a chaque fois que # tu rencontres telle sequence de caractere, tu dois faire telle action. # La liste des actions est disponible dans "man zshzle". # Un charset fran�ais export LESSCHARSET="UTF-8" # Correspondance touches-fonction bindkey '^A' beginning-of-line # Home bindkey '^E' end-of-line # End bindkey '^D' delete-char # Del bindkey '^U' backward-kill-line # Override kill-whole-line #bindkey '^W' kill-region # Override backward-kill-word bindkey '[3~' delete-char # Del bindkey '[2~' overwrite-mode # Insert bindkey '[5~' history-search-backward # PgUp bindkey '[6~' history-search-forward # PgDn bindkey '^[[1;5D' backward-word # Ctrl + gauche bindkey '^[[1;5C' forward-word # Ctrl + droite # Prompt couleur (la couleur n'est pas la m�me pour le root et # pour les simples utilisateurs) if [[ "$(whoami)" =~ (_adm@ad(-dev|).perf1.net$|^root$)$ ]]; then export PS1="%{%}%T%{%} %{%}%n%{%}@%{%}%m %{%}%~%{%}%#%{%} " else export PS1="%{%}%T%{%} %{%}%n%{%}@%{%}%m %{%}%~%{%}%#%{%} " fi # Console linux, dans un screen ou un rxvt if [ "$TERM" = "linux" -o "$TERM" = "screen" -o "$TERM" = "rxvt" ] then # Correspondance touches-fonction sp�cifique bindkey '[1~' beginning-of-line # Home bindkey '[4~' end-of-line # End fi # xterm if [ "$TERM" = "xterm" ] then # Correspondance touches-fonction sp�cifique bindkey '' beginning-of-line # Home bindkey '' end-of-line # End fi # Gestion de la couleur pour 'ls' (exportation de LS_COLORS) if [ -x /usr/bin/dircolors ] then if [ -r ~/.dir_colors ] then eval "`dircolors ~/.dir_colors`" elif [ -r /etc/dir_colors ] then eval "`dircolors /etc/dir_colors`" fi fi # # 3. Options de zsh (cf 'man zshoptions') # # Pour UTF8 setopt printeightbit # Pour UTF8 setopt printeightbit # 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 '>' setopt 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 # 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 # 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... # Je n'ai malheureusement jamais r�ussi � mettre en place ce sch�ma # alors qu'il me para�t �tre le sch�ma id�al ! # Si vous savez comment faire �a avec zsh -> alexis@via.ecp.fr # 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 # Fait la compl�tion sur les fichiers et r�pertoires cach�s setopt 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 ## AUTRES OPTIONS setopt correct # correction des commandes setopt correct_all # correction des arguments setopt hist_ignore_dups # vire les commandes en double unsetopt hist_ignore_space # n'ignore pas les espaces dans l'his. setopt hist_no_store # n'enregistre pas la cmd history ## FAUX ALIAS ############# function lsgrep () { ls -1 | grep $* | xargs ls -la } ######### ltgz() # Lister le contenu d'une archive .tar.gz { for file in $* ; do gzip -dc ${file} | tar tf - done } ######## ctgz() # Cr�er une archive .tgz � la zip. { name=$1 ; tar -cvf $1 ; shift tar -rf ${name} $* gzip -S .tgz ${name} } ######### inst() # Installer une archive .tar.gz dans le repertoire courant { gzip -dc $1 | tar xvf - } ## END OF FAUX ALIAS ############# # # 4. Param�tres de l'historique des commandes # # Nombre d'entr�es dans l'historique export HISTORY=10000 export SAVEHIST=10000 # Fichier o� est stock� l'historique export HISTFILE=$HOME/.zshistory # # 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 #----------------{ Modules source_or_die() { [[ -f $1 ]] && . $1 } # Super fonction made in Jedi source_or_die ~/.zshalias # Les alias source_or_die ~/.zshcomplete # Les completions source_or_die ~/.zshsite # Les trucs specifiques au site source_or_die ~/.zsh.$OSTYPE # Les trucs specifiques a l'OS source_or_die ~/.myzshrc # Votre propre .zshrc source_or_die ~/.myzshalias # Vos alias supplementaires source_or_die ~/.myzshcomplete # Vos regles de completion source_or_die ~/.myzsh.$OSTYPE # Vos trucs specifiques a l'OS source_or_die ~/.zshrc.local # Perso an.ginder source_or_die ~/.zshrc.perso # Perso print autoload -U +X bashcompinit && bashcompinit