forked from jkronz/dotfiles
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.zshrc
166 lines (139 loc) · 4.68 KB
/
.zshrc
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
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
HISTFILE=~/.histfile
HISTSIZE=10000
SAVEHIST=$HISTSIZE
setopt appendhistory
setopt hist_ignore_all_dups
setopt clobber
export PATH=/usr/local/sbin:$PATH
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
export PATH="$HOME/bin:$PATH"
fi
export NODE_PATH=/usr/local/lib/node_modules
# -----------------------------------------------
# Oracle Proxy Config
# -----------------------------------------------
#export http_proxy=http://adc-proxy.oracle.com:80
#export HTTP_PROXY=$http_proxy
autoload -Uz compinit
compinit
# -----------------------------------------------
# Set up the prompt
# -----------------------------------------------
autoload -Uz vcs_info
zstyle ':vcs_info:*' stagedstr '%F{green}●'
zstyle ':vcs_info:*' unstagedstr '%F{yellow}●'
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{11}%r'
zstyle ':vcs_info:*' enable git svn hg
precmd () {
echo -ne "\\033]0;${PWD##*/}\\007"
if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] {
zstyle ':vcs_info:*' formats $'%F{yellow}[%F{cyan}%r%F{blue}:%F{cyan}%b%c%u%F{yellow}]\n'
} else {
zstyle ':vcs_info:*' formats $'%F{yellow}[%F{cyan}%r%F{blue}:%F{cyan}%b%c%u%F{red}●%F{yellow}]\n'
}
vcs_info
}
setopt prompt_subst
# normal user prompt
[ $UID != 0 ] && export PROMPT=$'%{\e[1;30m%}(%{\e[0;32m%}%F{green}%n%{\e[1;32m%}@%{\e[0;32m%}%F{green}%m%{\e[1;30m%}:%{\e[0;32m%}%F{cyan}%~%{\e[1;30m%})%{\e[0;32m%}\n${vcs_info_msg_0_}%F{cyan}%#%f '
# root prompt
[ $UID = 0 ] && export PROMPT=$'%{\e[1;30m%}(%{\e[0;32m%}%F{red}%n%{\e[1;31m%}@%{\e[0;31m%}%F{red}%m%{\e[1;30m%}:%{\e[0;32m%}%F{magenta}%~%{\e[1;30m%})%{\e[0;32m%}\n${vcs_info_msg_0_}%F{magenta}%#%f '
#function zle-line-init zle-keymap-select {
# RPS1="${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --}"
# RPS2=$RPS1
# zle reset-prompt
#}
#zle -N zle-line-init
#zle -N zle-keymap-select
# -----------------------------------------------
# Set up completion for hostnames
# -----------------------------------------------
if [[ "$ZSH_VERSION_TYPE" == 'new' ]]; then
: ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}}
else
# Older versions don't like the above cruft
_etc_hosts=()
fi
hosts=(
"$_etc_hosts[@]"
#Add favourite hosts here, and zsh will autocomplete them
granada.lucenaresearch.com
sevilla.lucenaresearch.com
ars.newleveltech.net
heritage.newleveltech.net
brautigan.newleveltech.net
ars.objectwareinc.com
hsg.calllog.com
arsdb.objectwareinc.com
hsgdb.objectwareinc.om
sspbaweb.objectwareinc.com
)
my_accounts=(
#Add favourite accounts here, and zsh will autocomplete them
paul@granada.lucenaresearch.com
paul@sevilla.lucenaresearch.com
ec2-user@heritage.newleveltech.net
ec2-user@ars.newleveltech.net
ec2-user@brautigan.newleveltech.net
root@ars.objectwareinc.com
root@sspbaweb.objectwareinc.com
)
# Import local favorite hosts and accounts
[[ -s "$HOME/.hosts" ]] && . "$HOME/.hosts"
zstyle ':completion:*' hosts $hosts
zstyle ':completion:*:my-accounts' users-hosts $my_accounts
# -----------------------------------------------
# User-defined Functions
# -----------------------------------------------
kill_all() { kill `ps -e|grep "$1"|grep -v 'grep'|awk '{print $1;}'` }
install_git_bundle() {
git submodule add $1 .vim/bundle/$2
echo " ignore = untracked" >> .gitmodules
git add .
git commit -m "Install $2 bundle as submodule"
}
install_vim_bundle() {
mkdir -p ".vim/bundle/$2/$3"
wget "$1" -O ".vim/bundle/$2/$3/$2.vim"
git add .
git commit -m "Install $2 bundle"
}
install_zipped_bundle() {
mkdir ".vim/bundle/$2"
wget "$1" -O ".vim/bundle/$2/$2.zip"
cd ".vim/bundle/$2"
unzip "$2.zip"
cd ~
rm ".vim/bundle/$2/$2.zip"
git add .
git commit -m "Install $2 bundle"
}
_rake_does_task_list_need_generating () {
if [ ! -f .rake_tasks ]; then return 0;
else
accurate=$(stat -f%m .rake_tasks)
changed=$(stat -f%m Rakefile)
return $(expr $accurate '>=' $changed)
fi
}
_rake () {
if [ -f Rakefile ]; then
if _rake_does_task_list_need_generating; then
echo "\nGenerating .rake_tasks..." > /dev/stderr
rake --silent --tasks | cut -d " " -f 2 > .rake_tasks
fi
compadd `cat .rake_tasks`
fi
}
compdef _rake rake
# Import local environment
[[ -s "$HOME/.localenv" ]] && . "$HOME/.localenv"
# Import local environment
[[ -s "$HOME/.aliases" ]] && . "$HOME/.aliases"
# Import rvm
[[ -s "$HOME/.rvm/scripts/rvm" ]] && export rvm_prefix="$HOME/." && . "$HOME/.rvm/scripts/rvm"
# -----------------------------------------------
# END
# -----------------------------------------------