All pastes #460019 Raw Edit

Untitled

public shellscript v1 · immutable
#460019 ·published 2007-04-26 20:16 UTC
rendered paste body
# /etc/zsh/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/## 1. Les alias##  Gestion du ls : couleur + touche pas aux accentsalias ls='ls --classify --tabsize=0 --literal --color=auto --show-control-chars --human-readable'# Demande confirmation avant d'écraser un fichieralias cp='cp --interactive'alias mv='mv --interactive'alias rm='rm --interactive'# Raccourcis pour 'ls'alias ll='ls -l'alias la='ls -a'alias lla='ls -la'# Quelques alias pratiquesalias c='clear'alias less='less --quiet'alias s='cd ..'alias df='df --human-readable'alias du='du --human-readable'## 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".# Correspondance touches-fonctionbindkey '^A'    beginning-of-line       # Homebindkey '^E'    end-of-line             # Endbindkey '^D'    delete-char             # Delbindkey '[3~' delete-char             # Delbindkey '[2~' overwrite-mode          # Insertbindkey '[5~' history-search-backward # PgUpbindkey '[6~' history-search-forward  # PgDn# Prompt couleur (la couleur n'est pas la même pour le root et# pour les simples utilisateurs)if [ "`id -u`" -eq 0 ]; then  export PS1="%{%}%T%{%} %{%}%n%{%}@%{%}%m %{%}%~%{%}%#%{%} "else  export PS1="%{%}%T%{%} %{%}%n%{%}@%{%}%m %{%}%~%{%}%#%{%} "fi# Console linux, dans un screen ou un rxvtif [ "$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             # Endfi# xtermif [ "$TERM" = "xterm" ]then  # Correspondance touches-fonction spécifique  bindkey ''  beginning-of-line       # Home  bindkey ''  end-of-line             # Endfi# gnome-terminalif [ "$COLORTERM" = "gnome-terminal" ]then  # Correspondance touches-fonction spécifique  bindkey '^[OH'  beginning-of-line       # Home  bindkey '^[OF'  end-of-line             # Endfi# 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`"  else    eval "`dircolors`"  fifi## 3. Options de zsh (cf 'man zshoptions')## Je ne veux JAMAIS de beepsunsetopt beepunsetopt hist_beepunsetopt 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# 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...# 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# Fait la complétion sur les fichiers et répertoires cachéssetopt glob_dots# Traite les liens symboliques comme il fautsetopt 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 promptsetopt 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 pilesetopt auto_pushd# Ignore les doublons dans la pilesetopt 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 fermeunsetopt hup## 4. Paramètres de l'historique des commandes## Nombre d'entrées dans l'historiqueexport HISTORY=100export SAVEHIST=100# Fichier où est stocké l'historiqueexport HISTFILE=$HOME/.history## 5. Complétion des options des commandes#zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}'zstyle ':completion:*' max-errors 3 numericzstyle ':completion:*' use-compctl falsefunction precmd {    local TERMWIDTH    (( TERMWIDTH = ${COLUMNS} - 1 ))    ###    # Truncate the path if it's too long.        PR_FILLBAR=""    PR_PWDLEN=""        local promptsize=${#${(%):---(%n@%m)---()--}}    local pwdsize=${#${(%):-%~}}        if [[ "$promptsize + $pwdsize" -gt $TERMWIDTH ]]; then	    ((PR_PWDLEN=$TERMWIDTH - $promptsize))    else	PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $pwdsize)))..${PR_HBAR}.)}"    fi    ###    # Get APM info.    if which ibam > /dev/null; then	PR_APM_RESULT=``    elif which apm > /dev/null; then	PR_APM_RESULT=``    fi}setopt extended_globpreexec () {    if [[ "$TERM" == "screen" ]]; then	local CMD=${1[(wr)^(*=*|sudo|-*)]}	echo -n "\ek$CMD\e\\"    fi}setprompt () {    ###    # Need this so the prompt will work.    setopt prompt_subst    ###    # See if we can use colors.    autoload colors zsh/terminfo    if [[ "$terminfo[colors]" -ge 8 ]]; then	colors    fi    for color in RED WHITE WHITE GREY MAGENTA GREY WHITE; do	eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'	eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'	(( count = $count + 1 ))    done    PR_NO_COLOUR="%{$terminfo[sgr0]%}"    ###    # See if we can use extended characters to look nicer.        typeset -A altchar    set -A altchar ${(s..)terminfo[acsc]}    PR_SET_CHARSET="%{$terminfo[enacs]%}"    PR_SHIFT_IN="%{$terminfo[smacs]%}"    PR_SHIFT_OUT="%{$terminfo[rmacs]%}"    PR_HBAR=${altchar[q]:--}    PR_ULCORNER=${altchar[l]:--}    PR_LLCORNER=${altchar[m]:--}    PR_LRCORNER=${altchar[j]:--}    PR_URCORNER=${altchar[k]:--}        ###    # Decide if we need to set titlebar text.        case $TERM in	xterm*)	    PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} \a%}'	    ;;	screen)	    PR_TITLEBAR=$'%{\e_screen \005 (\005t) | %(!.-=[ROOT]=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} \e\\%}'	    ;;	*)	    PR_TITLEBAR=''	    ;;    esac            ###    # Decide whether to set a screen title    if [[ "$TERM" == "screen" ]]; then	PR_STITLE=$'%{\ekzsh\e\\%}'    else	PR_STITLE=''    fi            ###    # APM detection        ###    # Finally, the prompt.    PROMPT='$PR_SET_CHARSET$PR_STITLE${(e)PR_TITLEBAR}\$PR_GREY$PR_SHIFT_IN$PR_ULCORNER$PR_GREY$PR_HBAR$PR_SHIFT_OUT(\$PR_WHITE%(!.%SROOT%s.%n)$PR_LIGHT_RED@$PR_WHITE%m\$PR_GREY)$PR_SHIFT_IN$PR_HBAR$PR_GREY$PR_HBAR${(e)PR_FILLBAR}$PR_GREY$PR_HBAR$PR_SHIFT_OUT(\$PR_WHITE%$PR_PWDLEN<...<%~%<<\$PR_GREY)$PR_SHIFT_IN$PR_HBAR$PR_GREY$PR_URCORNER$PR_SHIFT_OUT\$PR_GREY$PR_SHIFT_IN$PR_LLCORNER$PR_GREY$PR_HBAR$PR_SHIFT_OUT(\\${(e)PR_APM}$PR_WHITE%D{%H:%M}\$PR_LIGHT_GREY$PR_GREY)$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\$PR_GREY$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\$PR_NO_COLOUR '    RPROMPT=' $PR_GREY$PR_SHIFT_IN$PR_HBAR$PR_GREY$PR_HBAR$PR_SHIFT_OUT\($PR_WHITE%D{%a,%d%b}$PR_GREY)$PR_SHIFT_IN$PR_HBAR$PR_GREY$PR_LRCORNER$PR_SHIFT_OUT$PR_NO_COLOUR'    PS2='$PR_GREY$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\$PR_GREY$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT(\$PR_LIGHT_WHITE%_$PR_GREY)$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT\$PR_GREY$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR '}setpromptautoload -U compinitcompinit