diff --git a/dotfiles/zsh/zshrc b/dotfiles/zsh/zshrc new file mode 100644 index 0000000..f463ee7 --- /dev/null +++ b/dotfiles/zsh/zshrc @@ -0,0 +1,220 @@ +# /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