-
Notifications
You must be signed in to change notification settings - Fork 0
/
dot_zshrc.tmpl
159 lines (133 loc) · 5.18 KB
/
dot_zshrc.tmpl
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
# zprof
# zmodload zsh/zprof && zprof
# XDG Base Directory Specification
export XDG_DATA_HOME=$HOME/.local/share
export XDG_CONFIG_HOME=$HOME/.config
export XDG_CACHE_HOME=$HOME/.cache
ZROOTDIR=$XDG_DATA_HOME/zsh
ZCONFDIR=$XDG_CONFIG_HOME/zsh/user
# history
HISTFILE=$ZROOTDIR/histfile
HISTSIZE=10000000
SAVEHIST=10000000
setopt hist_ignore_dups # 直前と同じコマンドは履歴に追加しない
setopt hist_ignore_all_dups # 重複したコマンドは古い方をすべて削除
setopt inc_append_history # イクリメンタルに履歴追加
setopt hist_reduce_blanks # 余分な空白は詰めて保存
# environment
typeset -U PATH MANPATH FPATH LIBRARY_PATH
export LANG=ja_JP.UTF-8
export GIT_EDITOR=vim
KEYTIMEOUT=1
SBT_OPT_LIST=(
"-Dsbt.global.base=$XDG_CACHE_HOME/sbt"
"-Dsbt.boot.directory=$XDG_CACHE_HOME/sbt/boot"
"-Dsbt.preloaded=$XDG_CACHE_HOME/sbt/preloaded"
"-Dsbt.global.staging=$XDG_CACHE_HOME/sbt/staging"
"-Dsbt.global.settings=$XDG_CONFIG_HOME/sbt/global"
"-Dsbt.global.plugins=$XDG_CONFIG_HOME/sbt/plugins"
"-Dsbt.global.zinc=$XDG_CACHE_HOME/sbt/zinc"
"-Dsbt.dependency.base=$XDG_CACHE_HOME/sbt/dependency"
"-Dsbt.repository.config=$XDG_CONFIG_HOME/sbt/repositories"
"-Dsbt.ivy.home=$XDG_CACHE_HOME/ivy"
)
# export SBT_OPTS="$(IFS=" "; echo "${SBT_OPT_LIST[*]}")"
export MAVEN_OPTS="-Dmaven.repo.local=$XDG_CACHE_HOME/m2/repository"
export HOMEBREW_CASK_OPTS="--appdir=/Applications"
# Variables for different platforms
{{ if ne (env "REMOTE_CONTAINERS") "true" -}}
export OPENSSL_DIR=$(brew --prefix openssl)
export MYSQL_DIR=$(brew --prefix mysql@5.7)
# openssl
export PATH=$OPENSSL_DIR/bin:$PATH
export LDFLAGS="-L$OPENSSL_DIR/lib"
export CPPFLAGS="-I$OPENSSL_DIR/include"
# mysql
export PATH=$MYSQL_DIR/bin:$PATH
# asdf
[[ -s $(brew --prefix asdf)/asdf.sh ]] && . $(brew --prefix asdf)/asdf.sh
# set LIBRARY_PATH
export LIBRARY_PATH=$OPENSSL_DIR/lib:$MYSQL_DIR/lib
{{ end -}}
export LIBRARY_PATH=/usr/local/lib:/usr/lib:$LIBRARY_PATH
export CARGO_HOME=$XDG_DATA_HOME/cargo
export RUSTUP_HOME=$XDG_DATA_HOME/rustup
export STACK_ROOT=$XDG_DATA_HOME/stack
export GOPATH=$XDG_DATA_HOME/go
export POETRY_HOME=$XDG_DATA_HOME/poetry
export TIG_HOME=$XDG_DATA_HOME/tig
export GEM_HOME=$XDG_CACHE_HOME/gem
export GEM_SPEC_CACHE=$GEM_HOME/specs
export BUNDLE_USER_HOME=$XDG_CACHE_HOME/bundle
export PERL_CPANM_HOME=$XDG_CACHE_HOME/cpanm
export SOLARGRAPH_CACHE=$XDG_CACHE_HOME/solargraph
export CP_HOME_DIR=$XDG_CACHE_HOME/cocoapods
export ELM_HOME=$XDG_CACHE_HOME/elm
export GORE_HOME=$XDG_CACHE_HOME/gore
export NPM_CONFIG_CACHE=$XDG_CACHE_HOME/npm
export IPYHTONDIR=$XDG_CACHE_HOME/ipython
export DOCKER_TMPDIR=$XDG_CACHE_HOME/docker
export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc
export DOCKER_CONFIG=$XDG_CONFIG_HOME/docker
export JUPYTER_CONFIG_DIR=$XDG_CONFIG_HOME/jupyter
export AWS_HOME=$XDG_CONFIG_HOME/aws
export AWS_CONFIG_FILE=$AWS_HOME/config
export AWS_SHARED_CREDENTIALS_FILE=$AWS_HOME/credentials
export FPATH=$ZROOTDIR/completion:$ZROOTDIR/zfunc:$FPATH
export MANPATH=/usr/local/share/man:$MANPATH
export PATH=/usr/local/sbin:/usr/local/bin:$PATH
export PATH=$POETRY_HOME/bin:$PATH
export PATH=$TIG_HOME/bin:$PATH
export PATH=$XDG_DATA_HOME/bin:$PATH
export PATH=$XDG_DATA_HOME/yarn/bin:$XDG_CONFIG_HOME/yarn/global/node_modules/.bin:$PATH
export PATH=$JAVA_HOME/bin:$PATH
export PATH=/usr/local/opt/coreutils/libexec/gnubin:$PATH
export PATH=$STACK_ROOT:$PATH
export PATH=$CARGO_HOME/bin:$RUSTUP_HOME/bin:$PATH
export PATH=$GOPATH/bin:$PATH
# user functions
source $ZCONFDIR/functions.zsh
# option
setopt print_eight_bit # 日本語ファイル名表示可能
setopt no_flow_control # Ctrl+S/Ctrl+Q によるフロー制御を無効
setopt auto_cd # ディレクトリ名だけでcd
setopt auto_pushd # cdで自動pushd
setopt pushd_ignore_dups # pushd時、重複したディレクトリを追加しない
bindkey '^[a' beginning-of-line
bindkey '^[^' beginning-of-line
bindkey '^[e' end-of-line
bindkey '^[$' end-of-line
bindkey '^[f' forward-word
bindkey '^[w' forward-word
bindkey '^[^[\[C' forward-word
bindkey '^[b' backward-word
bindkey '^[^[\[D' backward-word
bindkey '^r' fzf-select-history
bindkey "^f" fzf-find-cd
bindkey '^\\' fzf-src
bindkey '^g' fzf-glog
bindkey '^b' fzf-switching-branch
autoload -Uz compinit && compinit
autoload -Uz colors && colors
zstyle ':completion:*' format '%BCompleting %d%b'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' completer _oldlist _complete _history _match _ignored _prefix
zstyle ':completion:*:default' menu select=1 # 補完候補を ←↓↑→ で選択 (補完候補が色分け表示される)
# zmv
autoload -Uz zmv
alias zmv='noglob zmv'
# alias
alias la='ls -a'
alias ll='ls -l'
alias tma='tmux a -t'
alias dps='{{ "docker ps --format \"table {{.Names}}\t{{.RunningFor}}\t{{.Status}}\t{{.Ports}}\"" }}'
alias dns-cache-clear='sudo killall -HUP mDNSResponder'
alias cm='chezmoi'
# suffix
alias -s sh=sh
# load scripts
( type fzf > /dev/null 2>&1 ) && source $ZCONFDIR/fzf.zsh
source $ZCONFDIR/powerlevel9k.zsh
source $ZROOTDIR/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
[[ -s $ZCONFDIR/.zshrc.local ]] && source $ZCONFDIR/.zshrc.local
( type zprof > /dev/null 2>&1 ) && zprof | less