This repository has been archived by the owner on Jul 15, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.zshrc
265 lines (208 loc) · 6.85 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
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
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=9999
SAVEHIST=9999
bindkey -v
bindkey '^R' history-incremental-search-backward
# setting for peco
for f (~/.zsh/peco-sources/*) source "${f}" # load peco sources
bindkey '^r' peco-select-history
fpath=($(brew --prefix)/share/zsh/site-functions $fpath)
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename "${HOME}/.zshrc"
# 補完
## 初期化
autoload -U compinit
compinit -u
# End of lines added by compinstall
##### my settings
export SHELL=/bin/zsh
export TMPDIR=/tmp
export PAGER=less
export PATH=$HOME/bin:$PATH:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export LANG=ja_JP.UTF-8
export LSCOLORS=exfxcxdxbxegedabagacad
export JSTESTDRIVER_HOME=$HOME/bin
export VIMHOME=$HOME/.vim/
# custom_color.sh
autoload colors
colors
##### git settings
# Auto completin settings
# source /usr/local/git/contrib/completion/git-completion.bash
# GIT_PS1_SHOWDIRTYSTATE=true
# export PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '
# git editor
export GIT_EDITOR="vim"
# when use "cd", pushd automatically
setopt auto_pushd
# packed auto completion list
setopt list_packed
# set Tab,Ctrl+I as completion key
setopt auto_menu
# auto completin (,{,[
setopt auto_param_keys
# set "/" last directory name
setopt auto_param_slash
# not set just before command in history
setopt hist_ignore_dups
# not set "history" command in history
setopt hist_no_store
# can complement after "=" (like --prefix= )
setopt magic_equal_subst
setopt mark_dirs
# enable to display Japanese file name
setopt print_eight_bit
setopt prompt_subst
# delete word to "/" on Ctrl+w
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
# enable to cd, only directory name
setopt auto_cd
# prohibit C-s, C-q
setopt no_flow_control
# case ignore in auto-completion
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
### Prompt Setting
function rprompt-git-current-branch {
local name st color
if [[ "$PWD" =~ '/\.git(/.*)?$' ]]; then
return
fi
name=`git symbolic-ref HEAD 2> /dev/null`
name=`echo $name | sed -e 's,refs/heads/,,g'`
if [[ -z $name ]]; then
return
fi
color=${fg[green]}
# %{...%} は囲まれた文字列がエスケープシーケンスであることを明示する
# これをしないと右プロンプトの位置がずれる
echo "%{$color%}($name)%{$reset_color%} "
}
PROMPT="%{${fg[green]}%}[%n@macbook] %%%{${reset_color}%} "
RPROMPT="%{${fg[yellow]}%}[`rprompt-git-current-branch`%{${fg[yellow]}%}%~]%{${reset_color}%}"
precmd() {
RPROMPT="%{${fg[yellow]}%}[`rprompt-git-current-branch`%{${fg[yellow]}%}%~]%{${reset_color}%}"
}
## 補完方法毎にグループ化する。
### 補完方法の表示方法
### %B...%b: 「...」を太字にする。
### %d: 補完方法のラベル
zstyle ':completion:*' format '%B%d%b'
zstyle ':completion:*' group-name ''
## 補完侯補をメニューから選択する。
### select=2: 補完候補を一覧から選択する。
### ただし、補完候補が2つ以上なければすぐに補完する。
zstyle ':completion:*:default' menu select=2
## 補完候補に色を付ける。
### "": 空文字列はデフォルト値を使うという意味。
zstyle ':completion:*:default' list-colors ""
## 補完候補がなければより曖昧に候補を探す。
### m:{a-z}={A-Z}: 小文字を大文字に変えたものでも補完する。
### r:|[._-]=*: 「.」「_」「-」の前にワイルドカード「*」があるものとして補完する。
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z} r:|[._-]=*'
## 補完方法の設定。指定した順番に実行する。
### _oldlist 前回の補完結果を再利用する。
### _complete: 補完する。
### _match: globを展開しないで候補の一覧から補完する。
### _history: ヒストリのコマンドも補完候補とする。
### _ignored: 補完候補にださないと指定したものも補完候補とする。
### _approximate: 似ている補完候補も補完候補とする。
### _prefix: カーソル以降を無視してカーソル位置までで補完する。
zstyle ':completion:*' completer \
_oldlist _complete _match _history _ignored _approximate _prefix
## 補完候補をキャッシュする。
zstyle ':completion:*' use-cache yes
## 詳細な情報を使う。
zstyle ':completion:*' verbose yes
## sudo時にはsudo用のパスも使う。
zstyle ':completion:sudo:*' environ PATH="$SUDO_PATH:$PATH"
## カーソル位置で補完する。
setopt complete_in_word
## globを展開しないで候補の一覧から補完する。
setopt glob_complete
## 補完時にヒストリを自動的に展開する。
setopt hist_expand
## 補完候補がないときなどにビープ音を鳴らさない。
setopt no_beep
## 辞書順ではなく数字順に並べる。
setopt numeric_glob_sort
# 展開
## --prefix=~/localというように「=」の後でも
## 「~」や「=コマンド」などのファイル名展開を行う。
setopt magic_equal_subst
## 拡張globを有効にする。
## glob中で「(#...)」という書式で指定する。
setopt extended_glob
## globでパスを生成したときに、パスがディレクトリだったら最後に「/」をつける。
setopt mark_dirs
# judge OS
cygwin=false
unix=false
case "$(uname)" in
CYGWIN*) cygwin=true;;
Darwin) unix=true;;
esac
if $cygwin; then
source "${HOME}/.zshrc.cygwin"
fi
if $unix; then
source "${HOME}/.zshrc.unix"
fi
localize_file="${HOME}/.zshrc.local"
if [ -f ${localize_file} ]; then
source ${localize_file}
fi
# tmux solarized
set -g default-terminal "screen-256color"
export GOHOME=$(brew --prefix go)
export GOROOT=$GOHOME/libexec
export GOPATH=$GOHOME/_go
export PATH=$PATH:$GOROOT/bin
# cd で移動後に実行
# chpwd() {
# ls
# }
function do_enter() {
if [ -n "$BUFFER" ]; then
zle accept-line
return 0
fi
echo
ls
if [ "$(git rev-parse --is-inside-work-tree 2> /dev/null)" = 'true' ]; then
echo
echo -e "\e[0;33m--- git status ---\e[0m"
git status -sb
fi
zle reset-prompt
return 0
}
zle -N do_enter
bindkey '^m' do_enter
alias dirs='dirs -p'
alias gvim='open /Applications/MacVim.app'
# git alias
alias st='git st'
alias df='git df'
alias add='git add'
alias ci='git commit'
alias push='git push'
alias pull='git pull'
alias stash='git stash'
alias co='git checkout'
alias ls='ls --color'
alias ll='ls -altr'
# git svn alias
alias gvn='git svn'
alias gvn-ci='git stash && git svn dcommit && git stash pop'
alias gvn-up='git svn rebase'
# vim
alias vi='vim'
# tmux
alias tmux="tmux -2"
### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"
export PATH="/usr/local/sbin:$PATH"
export PATH="/usr/local/bin:$PATH"
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"