Refactoring bashrc

This commit is contained in:
Meutel 2017-05-01 11:18:25 +02:00
parent fc2d7aa952
commit ab46714371

138
_bashrc
View File

@ -1,10 +1,8 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything # If not running interactively, don't do anything
[ -z "$PS1" ] && return [ -z "$PS1" ] && return
##### VARIABLES #####
# don't put duplicate lines in the history. See bash(1) for more options # don't put duplicate lines in the history. See bash(1) for more options
export HISTCONTROL=ignoredups export HISTCONTROL=ignoredups
# ... and ignore same sucessive entries. # ... and ignore same sucessive entries.
@ -12,29 +10,28 @@ export HISTCONTROL=ignoreboth
# size # size
export HISTSIZE=10000 export HISTSIZE=10000
export HISTFILESIZE=100000 export HISTFILESIZE=100000
# navigateur prefere
export BROWSER=firefox
# editeur par defaut
export EDITOR=vim
export VISUAL=$EDITOR
# pager man conserve affichage à l'écran
export MANPAGER="less -X"
# youtube dl default dl dir FIXME default in youtube
export YDL_TARGET=$HOME
# check the window size after each command and, if necessary, ##### COLORS #####
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# make less more friendly for non-text input files, see lesspipe(1) # ls colors
#[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)" export LSCOLORS="ExGxFxdxCxDxDxhbadExEx"
# enable color support of ls and also add handy aliases
# set variable identifying the chroot you work in (used in the prompt below) if [ "$TERM" != "dumb" ]; then
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then [ -x /usr/bin/dircolors ] && eval "`dircolors -b`"
debian_chroot=$(cat /etc/debian_chroot)
fi fi
# set a fancy prompt (non-color, unless we know we "want" color) ##### FUNCTIONS #####
case "$TERM" in
xterm-color)
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
;;
*)
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
;;
esac
# status indicator
prompt_status() prompt_status()
{ {
if [[ "$?" == "0" ]] if [[ "$?" == "0" ]]
@ -45,8 +42,35 @@ prompt_status()
fi fi
echo -n '\[\033[1;31m\]' echo -n '\[\033[1;31m\]'
} }
# Prompt
PS1="\[\033[1;31m\]>> \[\033[01;37m\](\[\033[0;37m\]\u@\[\033[0;32m\]\h\[\033[01;37m\]) \[\033[01;34m\]\w\[\033[00m\]\n\[\033[1;31m\]$(prompt_status)>\[\033[0;37m\] " ##### INCLUDES #####
# Alias definitions.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# host specific
if [ -f ~/.bash_aliases_$(hostname -s) ]; then
. ~/.bash_aliases_$(hostname -s)
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
# FreeBSD
[[ $PS1 && -f /usr/local/share/bash-completion/bash_completion.sh ]] && \
source /usr/local/share/bash-completion/bash_completion.sh
##### MISC #####
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# conserve l'historique lorsque l'on utilise plusieurs terminaux
shopt -s histappend
# If this is an xterm set the title to user@host:dir # If this is an xterm set the title to user@host:dir
case "$TERM" in case "$TERM" in
@ -57,61 +81,20 @@ xterm*|rxvt*)
;; ;;
esac esac
# Alias definitions. # Tmux + ssh agent forwarding
# You may want to put all your additions into a separate file like if [ -S "$SSH_AUTH_SOCK" ] && [ ! -h "$SSH_AUTH_SOCK" ]; then
# ~/.bash_aliases, instead of adding them here directly. ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# host specific
if [ -f ~/.bash_aliases_$(hostname -s) ]; then
. ~/.bash_aliases_$(hostname -s)
fi fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
# enable color support of ls and also add handy aliases ##### PROMPT #####
if [ "$TERM" != "dumb" ]; then
[ -x /usr/bin/dircolors ] && eval "`dircolors -b`"
#alias dir='ls --color=auto --format=vertical'
#alias vdir='ls --color=auto --format=long'
fi
# enable programmable completion features (you don't need to enable PS1_pre="\[\033[1;31m\]>> \[\033[01;37m\](\[\033[0;37m\]\u@\[\033[0;32m\]\h\[\033[01;37m\]) \[\033[01;34m\]\w\[\033[00m\]"
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile PS1_post="\[\033[1;31m\]$(prompt_status)>\[\033[0;37m\] "
# sources /etc/bash.bashrc). PS1="${PS1_pre}\n${PS1_post}"
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
# navigateur prefere ##### GIT #####
export BROWSER=firefox
# conserve l'historique lorsque l'on utilise plusieurs terminaux
shopt -s histappend
# editeur par defaut
export EDITOR=vim
export VISUAL=$EDITOR
# mutt background fix
COLORFGBG="default;default"
# pager man conserve affichage à l'écran
export MANPAGER="less -X"
# ls colors
export LSCOLORS="ExGxFxdxCxDxDxhbadExEx"
# youtube dl default dl dir
export YDL_TARGET=$HOME
# host specific
if [ -f ~/.bashrc_$(hostname -s) ]; then
. ~/.bashrc_$(hostname -s)
fi
# git
if [ -e /usr/local/share/git-core/contrib/completion/git-completion.bash ]; then if [ -e /usr/local/share/git-core/contrib/completion/git-completion.bash ]; then
. /usr/local/share/git-core/contrib/completion/git-completion.bash . /usr/local/share/git-core/contrib/completion/git-completion.bash
fi fi
@ -127,11 +110,6 @@ if [ -e /usr/local/share/git-core/contrib/completion/git-prompt.sh ] || [ -e /us
export GIT_PS1_SHOWUNTRACKEDFILES=1 export GIT_PS1_SHOWUNTRACKEDFILES=1
export GIT_PS1_SHOWUPSTREAM="auto" export GIT_PS1_SHOWUPSTREAM="auto"
export GIT_PS1_SHOWCOLORHINTS=1 export GIT_PS1_SHOWCOLORHINTS=1
export PROMPT_COMMAND='__git_ps1 "\[\033[1;31m\]>> \[\033[01;37m\](\[\033[0;37m\]\u@\[\033[0;32m\]\h\[\033[01;37m\]) \[\033[01;34m\]\w\[\033[00m\]" "\n\[\033[1;31m\]$(prompt_status)>\[\033[0;37m\] "' export PROMPT_COMMAND='__git_ps1 "$PS1_pre" "\n$PS1_post"'
fi fi
# Tmux + ssh agent forwarding
if [ -S "$SSH_AUTH_SOCK" ] && [ ! -h "$SSH_AUTH_SOCK" ]; then
ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock