Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# ############################################# #
# ~/.zshrc #
# #
# This file is managed by Ansible #
# Manual edition will be overridden #
# #
# https://lab.frogg.it/fcode/ansible/debian #
# from http://formation-debian.via.ecp.fr #
# #
# ############################################# #
# ############ #
# 1. Les alias #
# ############ #
# Gestion du 'ls' couleur
alias ls='ls --color'
alias ll='ls -hal'
# Demande confirmation avant d'écraser un fichier
alias cp='cp --interactive'
alias mv='mv --interactive'
alias rm='rm --interactive'
# Quelques alias pratiques
alias c='clear'
alias less='less --quiet'
alias df='df --human-readable'
alias du='du --human-readable'
alias md='mkdir --parent'
# Mes alias
function gh() { grep --color "$1" ~/.history }
alias ada='sudo apt update && sudo apt list --upgradable && sudo apt clean'
alias agr='sudo apt upgrade && sudo apt autoclean && sudo apt autoremove'
alias apti='sudo apt install'
alias p1='ping -c 1 '
alias gps='for proj in $(find ~/git -mindepth 1 -maxdepth 1 -type d -printf "%p\n");do RES=$(git -C ${proj} status -s) && [[ -n ${RES} ]] && echo "\n# ${proj#${HOME}/git/}:\n${RES}";done'
alias gpu='for proj in $(find ~/git -mindepth 1 -maxdepth 1 -type d -printf "%p\n");do git -C ${proj} fetch --prune --quiet || echo "ERROR fetching git repo: ${proj#${HOME}/git/}";done'
alias p1='ping -c 1 '
alias sudo='sudo '
alias ttoday='cat ~/.timed|grep "$(date +%d) Oct 2021" | timed parse'
alias vact='source ~/.venvs/$(pwd | cut -d"/" -f5)/bin/activate'
alias vc10='~/pylocal/bin/python3.10 -m venv --clear --copies ~/.venvs/$(pwd | cut -d "/" -f5)'
alias vc='python3 -m venv --clear --copies ~/.venvs/$(pwd | cut -d "/" -f5)'
alias vdestroy='VENV_PATH="${HOME}/.venvs/$(pwd | cut -d"/" -f5)/" && echo ${VENV_PATH} && rm -rfI ${VENV_PATH}'
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
# Timed
alias tart='timed start _job_;vi ~/.timed +'
alias tsto='timed stop;ttod'
alias ttod='cat ~/.timed | grep "$(date +%d) Jan 2022" | timed parse'
# ######################### #
# 2. Définition des touches #
# ######################### #
# Correspondance touches-fonction
#bindkey '' delete-char
#bindkey '[3~' delete-char
#bindkey '[2~' overwrite-mode
# Beginning/end of line
bindkey "" beginning-of-line
bindkey "\e[1~" beginning-of-line
bindkey "\e[H" beginning-of-line
bindkey "" end-of-line
bindkey "\e[4~" end-of-line
bindkey "\e[F" end-of-line
# History search
bindkey '^R' history-incremental-search-backward
bindkey '^F' history-incremental-search-forward
# ctrl+<- | ctrl+->
bindkey "^[[1;5D" backward-word
bindkey "^[[1;5C" forward-word
# 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="%{[36;1m%}%T %{[34m%}%n%{[33m%}@%{[37m%}%m %{[32m%}%~ %{[33m%}%#%{[0m%} "
else
export PS1="%{[36;1m%}%T %{[31m%}%n%{[33m%}@%{[37m%}%m %{[32m%}%~ %{[33m%}%#%{[0m%} "
fi
# Prise en charge des touches [début], [fin] et autres
typeset -A key
key[Home]=${terminfo[khome]}
key[End]=${terminfo[kend]}
key[Insert]=${terminfo[kich1]}
key[Delete]=${terminfo[kdch1]}
key[Up]=${terminfo[kcuu1]}
key[Down]=${terminfo[kcud1]}
key[Left]=${terminfo[kcub1]}
key[Right]=${terminfo[kcuf1]}
key[PageUp]=${terminfo[kpp]}
key[PageDown]=${terminfo[knp]}
[[ -n "${key[Home]}" ]] && bindkey "${key[Home]}" beginning-of-line
[[ -n "${key[End]}" ]] && bindkey "${key[End]}" end-of-line
[[ -n "${key[Insert]}" ]] && bindkey "${key[Insert]}" overwrite-mode
[[ -n "${key[Delete]}" ]] && bindkey "${key[Delete]}" delete-char
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-history
[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-history
[[ -n "${key[Left]}" ]] && bindkey "${key[Left]}" backward-char
[[ -n "${key[Right]}" ]] && bindkey "${key[Right]}" forward-char
# Titre de la fenêtre d'un xterm
case $TERM in
xterm*)
precmd () {print -Pn "\e]0;%n@%m: %~\a"}
;;
esac
# 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`"
fi
fi
# ####################################### #
# 3. Options de zsh (cf 'man zshoptions') #
# ####################################### #
# 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
# 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
# Options de complétion
# Quand le dernier caractère d'une complétion est '/' et que l'on
# tape 'espace' après, le '/' est effacé
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 #
# ########################################### #
setopt EXTENDED_HISTORY
export HISTTIMEFORMAT="[%F %T] "
# Nombre d'entrées dans l'historique
export HISTORY=50000
export SAVEHIST=50000
# 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
[[ -e ~/opt/zsh-autosuggestions/zsh-autosuggestions.zsh ]] && source ~/opt/zsh-autosuggestions/zsh-autosuggestions.zsh
# ###################### #
# 6. Local configuration #
# ###################### #
[[ -e ~/.zshlocal ]] && source ~/.zshlocal