221 lines
7.3 KiB
Plaintext
221 lines
7.3 KiB
Plaintext
# /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="%{[33;36;1m%}%T%{[0m%} %{[33;34;1m%}%n%{[0m[33;33;1m%}@%{[33;37;1m%}%m %{[33;32;1m%}%~%{[0m[33;33;1m%}%#%{[0m%} "
|
|
else
|
|
export PS1="%{[33;36;1m%}%T%{[0m%} %{[33;31;1m%}%n%{[0m[33;33;1m%}@%{[33;37;1m%}%m %{[33;32;1m%}%~%{[0m[33;33;1m%}%#%{[0m%} "
|
|
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 '[H' beginning-of-line # Home
|
|
bindkey '[F' 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
|