-
Notifications
You must be signed in to change notification settings - Fork 2
/
zshrc
127 lines (112 loc) · 5.05 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
# 基本設定
# export TERM=xterm-256color
export EDITOR=vim # エディタをvimに設定
export LANG=ja_JP.UTF-8 # 文字コードをUTF-8に設定
setopt no_beep # ビープ音を鳴らさないようにする
setopt auto_cd # ディレクトリ名と一致した場合にcd
setopt auto_pushd # cd時にディレクトリスタックにpushd
autoload -U colors; colors # 色を使用できるようにする
setopt prompt_subst # プロンプトに式展開を適用
export LSCOLORS=gxfxcxdxbxegedabagacad # lsの色設定
export LESSCHARSET=utf-8 # less の文字コードを指定
# VCSのブランチ名をプロンプトに表示
autoload -Uz vcs_info
zstyle ':vcs_info:*' formats '(%s)-[%b]'
zstyle ':vcs_info:*' actionformats '(%s)-[%b|%a]'
precmd () {
psvar=()
LANG=en_US.UTF-8 vcs_info
[[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_"
}
# キーバインド
bindkey '^A' beginning-of-line
bindkey '^E' end-of-line
bindkey '^F' forward-word
bindkey '^B' backward-word
# プロンプト
PROMPT="%{${fg[blue]}%}%/%{${reset_color}%} "
PROMPT2="%{${fg[blue]}%}%_%{${reset_color}%} "
SPROMPT="%{${fg[red]}%}%r is correct? [n,y,a,e]:%{${reset_color}%} "
RPROMPT="%1(v|%F{green}%1v%f|)"
[ -n "${REMOTEHOST}${SSH_CONNECTION}" ] && PROMPT="%{${fg[cyan]}%}%n@${HOST%%.*} ${PROMPT}"
# 補完
autoload -U compinit; compinit # 補完機能を有効にする
setopt auto_list # 補完候補を一覧で表示する
setopt auto_menu # 補完キー連打で補完候補を順に表示する
setopt auto_param_keys # 括弧などを自動的に補完
setopt auto_param_slash # ディレクトリの補完時に末尾に/を付加
setopt complete_aliases # エイリアスを設定したコマンドにも補完機能を適用
setopt correct # コマンドを修正
setopt correct_all # コマンドだけでなくファイル名等も修正
setopt hist_expand # 補完時にヒストリを展開
setopt list_packed # 補完候補を詰めて表示する
setopt list_types # 補完候補にファイルの種類も表示する
setopt magic_equal_subst # =以降も補完する
setopt mark_dirs # 補完対象がディレクトリの場合末尾に/を付加
setopt nolistbeep # 補完表示時にビープ音を鳴らさない
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' # 大文字小文字を区別しない
# 履歴
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt hist_ignore_dups # 連続して重複したコマンドラインはヒストリに追加しない
setopt share_history # 履歴の共有
setopt hist_no_store # historyコマンドをhistoryに保存しない
setopt hist_reduce_blanks # 余分なスペースを削除してヒストリに記録する
setopt extended_history # 履歴ファイルに時刻を記録
setopt inc_append_history # 履歴をインクリメンタルに追加
setopt hist_ignore_space # スペースで始まるコマンド行はヒストリリストから削除
setopt hist_verify # ヒストリを呼び出してから実行する間に一旦編集可能
autoload history-search-end
# 履歴検索機能のショートカット
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^P" history-beginning-search-backward-end
bindkey "^N" history-beginning-search-forward-end
# zshrc.d 以下の読み込み
for rc in `ls ~/dotfiles/zshrc.d`; do
source ~/dotfiles/zshrc.d/$rc
done
# zshrc.local.d 以下の読み込み
for rc in `ls ~/dotfiles/zshrc.local.d`; do
source ~/dotfiles/zshrc.local.d/$rc
done
# エイリアス
source ~/dotfiles/zshrc.alias
# manコマンドに色をつける
export MANPAGER='less -R'
man() {
env \
LESS_TERMCAP_mb=$(printf "\e[1;31m") \
LESS_TERMCAP_md=$(printf "\e[1;31m") \
LESS_TERMCAP_me=$(printf "\e[0m") \
LESS_TERMCAP_se=$(printf "\e[0m") \
LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
LESS_TERMCAP_ue=$(printf "\e[0m") \
LESS_TERMCAP_us=$(printf "\e[1;32m") \
man "$@"
}
# その他
export PATH="$HOME/.rbenv/bin:$PATH"
export PATH="$HOME/local/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
if [ -d "$HOME/.rbenv" ]; then
eval "$(rbenv init -)"
fi
export PATH="$HOME/.nodebrew/current/bin:$PATH"
if [ -e "~/perl5/perlbrew/etc/bashrc" ]; then
source ~/perl5/perlbrew/etc/bashrc
fi
if [ -d "$HOME/.goenv" ]; then
export GOENV_ROOT="$HOME/.goenv"
export PATH="$GOENV_ROOT/bin:$PATH"
eval "$(goenv init -)"
export PATH="$GOROOT/bin:$PATH"
export PATH="$PATH:$GOPATH/bin"
fi
which direnv > /dev/null && eval "$(direnv hook zsh)"
# tmux powerline にカレントディレクトリを表示するために必要
PS1="$PS1"'$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#D" | tr -d %) "$PWD")'
if [ -d "$HOME/.terraform.d/plugin-cache" ]; then
export TF_PLUGIN_CACHE_DIR="$HOME/.terraform.d/plugin-cache"
fi