-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_zshrc
122 lines (103 loc) · 5.62 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
# variables
export TMPDIR="/tmp"
export TZ="JST-09"
export MAKE_MODE="unix"
export LANG="ja_JP.UTF-8"
export JLESSCHARSET="japanese-sjis"
export C_INCLUDE_PATH="/usr/include/"
export HOMEBREW_NO_AUTO_UPDATE=1
# nvm
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
export NVM_SYMLINK_CURRENT=true
export NODE_VERSIONS="$HOME/.nvm/versions/node"
export NODE_VERSIONS_PREFIX=""
export PATH=$PATH:$(brew --prefix)/bin
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
# zsh
autoload -U compinit
compinit
setopt auto_param_slash # ディレクトリ名の補完で末尾の / を自動的に付加し、次の補完に備える.
setopt mark_dirs # ファイル名の展開でディレクトリにマッチした場合、末尾に / を付加.
setopt list_types # 補完候補一覧でファイルの種別を識別マーク表示.
setopt auto_menu # 補完キー連打で順に補完候補を自動で補完.
setopt auto_param_keys # カッコの対応などを自動的に補完.
setopt interactive_comments # コマンドラインでも # 以降をコメントと見なす.
setopt magic_equal_subst # コマンドラインの引数で --prefix=/usr などの = 以降も補完.
setopt complete_in_word # 語の途中でもカーソル位置で補完.
setopt always_last_prompt # カーソル位置は保持したままファイル名一覧を順次その場で表示.
setopt extended_glob # ファイル名で #, ~, ^ の 3 文字を正規表現として扱う.
setopt globdots # 明確なドットの指定なしで.から始まるファイルをマッチ.
setopt brace_ccl # {a-c} を a b c に展開する機能を使えるようにする.
setopt list_packed # 補完候補を詰めて表示.
setopt auto_list # 曖昧補完ですぐに補完候補を表示.
bindkey "^I" menu-complete # 展開する前に補完候補を出させる(Ctrl-iで補完するようにする)
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' # 補完時に大文字小文字を区別しない.
zstyle ':completion:*:default' menu select=1 # 補完候補のカーソル選択を有効に.
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z} r:|[._-]=*' # 補完候補がなければより曖昧に候補を探す.
export LS_COLORS='di=36:ln=35:so=32:pi=33:ex=31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30'
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
setopt print_eight_bit # 日本語ファイル名等8ビットを通す.
setopt auto_resume # サスペンド中のプロセスと同じコマンド名を実行した場合はリジューム.
setopt equals # =command を command のパス名に展開する.
setopt numeric_glob_sort # ファイル名の展開で辞書順ではなく数値的にソート.
setopt auto_cd # ディレクトリ名だけで cd.
setopt correct # スペルチェック.
setopt NO_flow_control # Ctrl+S/Ctrl+Q によるフロー制御を使わないようにする.
setopt hist_no_store # history (fc -l) コマンドをヒストリリストから取り除く.
setopt noautoremoveslash # 最後のスラッシュを自動的に削除しない.
fpath=(/usr/local/share/zsh-completions $fpath) # Gitコマンド補完(brew install zsh-completions)
# hooks:prompt
autoload colors
colors
autoload -Uz vcs_info
setopt prompt_subst
precmd () {
LANG=en_US.UTF-8 vcs_info
sharp='\uE0B0'
zstyle ':vcs_info:git:*' check-for-changes true
zstyle ':vcs_info:git:*' stagedstr "[++staged]"
zstyle ':vcs_info:git:*' unstagedstr "[+changed]"
zstyle ':vcs_info:*' formats "%F{white}%K{blue} %b%c %u %{$reset_color%}"
zstyle ':vcs_info:*' actionformats "%F{white}%K{cyan} %b %{$reset_color%} %F{yellow}%a %{$reset_color%}"
if [ ! -z $TMUX ]; then
tmux refresh-client -S
fi
PROMPT="
%F{cyan}%K %~ %f ${vcs_info_msg_0_}"$'\n'"%F{white}%{$reset_color%}> "
RPROMPT="%F{white}%T"
}
# alias
alias ll="ls -lah"
alias mysql="mysql --auto-rehash"
alias tmuxn="tmux -2 new-session \; source-file ~/.tmux/new-session"
alias pw="pwgen 10 1 -y |pbcopy && echo \"Generated password.\""
alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
alias utf8:unescape='(){echo "$1"|sed -e "s/u\([0-9a-f][0-9a-f][0-9a-f][0-9a-f]\)/\&#x\1;/g"| nkf --numchar-input}'
alias utf8:decode='(){echo $1|nkf --url-input}'
alias utf8:parse='(){if [[ "$1" == *%* ]]; then utf8:decode "$1"; else utf8:unescape "$1"; fi}'
alias phpunit:silent='export SYMFONY_DEPRECATIONS_HELPER=weak'
if [ -f /Applications/MacVim.app/Contents/MacOS/Vim ]; then
alias vi='env LANG=ja_JP.UTF-8 /Applications/MacVim.app/Contents/MacOS/Vim "$@"'
alias vim='env LANG=ja_JP.UTF-8 /Applications/MacVim.app/Contents/MacOS/Vim "$@"'
fi
# pcd/peco
ZSH_CONF="${HOME}/dotfiles/.zsh.d"
if [ -d $ZSH_CONF -a -r $ZSH_CONF -a \
-x $ZSH_CONF ]; then
for i in $ZSH_CONF/*; do
[[ ${i##*/} = *.zsh ]] &&
[ \( -f $i -o -h $i \) -a -r $i ] && . $i
done
fi
# path
export PATH="$PATH:$HOME/dotfiles/shells"
export PATH="$PATH:$HOME/dotfiles/shells/private"
export PATH="$PATH:$HOME/.ssh/shells"
export PATH="/opt/homebrew/opt/mysql@5.7/bin:$PATH"
export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"
export PATH="/usr/local/opt/openssl@1.0/bin:$PATH"
# puppetter warning for Apple M1 Sillicon
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
export PUPPETEER_EXECUTABLE_PATH=`which chromium`
typeset -U PATH # PATH変数の重複を削除