-
Notifications
You must be signed in to change notification settings - Fork 0
/
.bashrc
57 lines (49 loc) · 1.35 KB
/
.bashrc
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# git status with a dirty flag
function __git_status_flag {
git_status="$(git status 2> /dev/null)"
remote_pattern="^# Your branch is (.*) of"
diverge_pattern="# Your branch and (.*) have diverged"
if [[ ! ${git_status} =~ "working directory clean" ]]; then
state="⚡"
spacer=" "
fi
if [[ ${git_status} =~ ${remote_pattern} ]]; then
spacer=" "
if [[ ${BASH_REMATCH[1]} == "ahead" ]]; then
remote="↑"
else
remote="↓"
fi
fi
if [[ ${git_status} =~ ${diverge_pattern} ]]; then
remote="↕"
spacer=" "
fi
echo "${state}${remote}${spacer}"
}
function hg_branch() {
hg branch 2> /dev/null | awk '{print " ["$1"] "}'
}
export PS1='[\[\e[0;32m\]\u@\h \[\e[0;34m\]\w\[\033[00m\]]\[\e[22;35m\]$(hg_branch)$(__git_ps1 " [\[\e[33m\]$(__git_status_flag)\[\e[35m\]%s] ")\[\033[00m\]\$ '
_pip_completion() {
COMPREPLY=( $( COMP_WORDS="${COMP_WORDS[*]}" \
COMP_CWORD=$COMP_CWORD \
PIP_AUTO_COMPLETE=1 $1 ) )
}
complete -o default -F _pip_completion pip
function fix_permissions() {
sudo find . -executable -exec chmod o+rx {} + &&
sudo find . ! -executable -exec chmod o+r {} +
}
function ec {
emacsclient -c "$@" &
}
alias ccat='pygmentize -g'
function git {
if [[ "$1" == "log" ]]; then
shift;
command git log --ext-diff "$@"
else
command git "$@"
fi
}