Last active
March 13, 2017 06:02
-
-
Save guehara/4dd19231bc9dd3a88a91 to your computer and use it in GitHub Desktop.
.zshrc for macOS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### zplug | |
source ~/.zplug/init.zsh | |
zplug 'zsh-users/zsh-completions' | |
zplug 'zsh-users/zaw' | |
zplug 'zsh-users/zsh-syntax-highlighting', defer:2 | |
zplug check || zplug install | |
### cdr の設定 (zplug load 前に書かないと zaw-cdr がスキップされる) | |
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook is-at-least | |
if is-at-least 4.3.10; then | |
add-zsh-hook chpwd chpwd_recent_dirs | |
zstyle ':chpwd:*' recent-dirs-max 5000 | |
zstyle ':chpwd:*' recent-dirs-default yes | |
fi | |
zplug load | |
### emacs 風キーバインド | |
bindkey -e | |
### 色付けで色の名前が使えたりとか | |
autoload -Uz add-zsh-hook | |
autoload -U colors && colors | |
### vsc_info の設定 | |
autoload -Uz vcs_info | |
zstyle ':vcs_info:*' enable git svn hg | |
zstyle ':vcs_info:*' formats '(%s)[%b] ' | |
zstyle ':vcs_info:*' actionformats '(%s)[%b|%a] ' | |
zstyle ':vcs_info:svn:*' branchformat '%b:r%r' | |
precmd () { | |
psvar=() | |
LANG=en_US.UTF-8 vcs_info | |
[[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_" | |
[[ -t 1 ]] || return | |
[ $EMACS ] && return | |
case $TERM in | |
*xterm*|rxvt|(dt|k|E)term) | |
print -Pn "\e]2;localhost\a" | |
;; | |
esac | |
} | |
if is-at-least 4.3.10; then | |
zstyle ':vcs_info:git:*' check-for-changes true | |
zstyle ':vcs_info:git:*' stagedstr "+" | |
zstyle ':vcs_info:git:*' unstagedstr "-" | |
zstyle ':vcs_info:git:*' formats '(%s)[%b]%c%u' | |
zstyle ':vcs_info:git:*' actionformats '(%s)[%b|%a]%c%u' | |
fi | |
function _update_vcs_info_msg() { | |
psvar=() | |
LANG=en_US.UTF-8 vcs_info | |
[[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_" | |
} | |
add-zsh-hook precmd _update_vcs_info_msg | |
zstyle ':vcs_info:bzr:*' use-simple true | |
function toon { | |
echo -n "" | |
} | |
### プロンプト設定 | |
if [ $EMACS ]; then | |
export TERM=xterm-256color | |
PROMPT="%F{green}%~%f %{$fg[red]%}>%{$reset_color%} " | |
else | |
PROMPT="%F{green}%~%f %{$fg[white]%}$(toon)%{$reset_color%} " | |
fi | |
PROMPT2="%_%% " | |
SPROMPT="%r is correct? [n,y,a,e]: " | |
RPROMPT="%1(v|%F{yellow}%1v%f|)%F{red}%T%f" | |
### history 設定 | |
HISTFILE=~/.zsh_historyx | |
HISTSIZE=10000 | |
SAVEHIST=10000 | |
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 | |
### 補完 | |
autoload -U compinit; compinit -C | |
### 補完方法毎にグループ化する。 | |
zstyle ':completion:*' format '%B%F{blue}%d%f%b' | |
zstyle ':completion:*' group-name '' | |
### 補完侯補をメニューから選択する。 | |
### select=2: 補完候補を一覧から選択する。補完候補が2つ以上なければすぐに補完する。 | |
zstyle ':completion:*:default' menu select=2 | |
### 補完候補に色を付ける。 | |
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" | |
### 補完候補がなければより曖昧に候補を探す。 | |
### m:{a-z}={A-Z}: 小文字を大文字に変えたものでも補完する。 | |
### r:|[._-]=*: 「.」「_」「-」の前にワイルドカード「*」があるものとして補完する。 | |
#zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z} r:|[._-]=*' | |
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' | |
zstyle ':completion:*' keep-prefix | |
zstyle ':completion:*' recent-dirs-insert both | |
### 補完候補 | |
### _oldlist 前回の補完結果を再利用する。 | |
### _complete: 補完する。 | |
### _match: globを展開しないで候補の一覧から補完する。 | |
### _history: ヒストリのコマンドも補完候補とする。 | |
### _ignored: 補完候補にださないと指定したものも補完候補とする。 | |
### _approximate: 似ている補完候補も補完候補とする。 | |
### _prefix: カーソル以降を無視してカーソル位置までで補完する。 | |
#zstyle ':completion:*' completer _oldlist _complete _match _history _ignored _approximate _prefix | |
zstyle ':completion:*' completer _complete _ignored | |
## 補完候補をキャッシュする。 | |
zstyle ':completion:*' use-cache yes | |
zstyle ':completion:*' cache-path ~/.zsh/cache | |
## 詳細な情報を使わない | |
zstyle ':completion:*' verbose no | |
## sudo の時にコマンドを探すパス | |
zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin | |
setopt no_beep # 補完候補がないときなどにビープ音を鳴らさない。 | |
setopt no_nomatch # git show HEAD^とかrake foo[bar]とか使いたい | |
setopt prompt_subst # PROMPT内で変数展開・コマンド置換・算術演算を実行 | |
setopt transient_rprompt # コマンド実行後は右プロンプトを消す | |
setopt hist_ignore_dups # 直前と同じコマンドラインはヒストリに追加しない | |
setopt hist_ignore_all_dups # 重複したヒストリは追加しない | |
setopt hist_reduce_blanks | |
setopt hist_no_store | |
setopt hist_verify | |
setopt share_history # シェルのプロセスごとに履歴を共有 | |
setopt extended_history # 履歴ファイルに時刻を記録 | |
#setopt hist_expand # 補完時にヒストリを自動的に展開する。 | |
setopt append_history # 複数の zsh を同時に使う時など history ファイルに上書きせず追加 | |
setopt auto_cd # ディレクトリ名だけで移動 | |
setopt auto_pushd # cd したら pushd | |
setopt auto_list # 補完候補が複数ある時に、一覧表示 | |
setopt auto_menu # 補完候補が複数あるときに自動的に一覧表示する | |
#setopt auto_param_slash | |
setopt list_packed | |
setopt list_types | |
setopt no_flow_control | |
setopt print_eight_bit | |
setopt pushd_ignore_dups | |
setopt rec_exact | |
setopt autoremoveslash | |
unsetopt list_beep | |
setopt complete_in_word # カーソル位置で補完する。 | |
setopt glob | |
setopt glob_complete # globを展開しないで候補の一覧から補完する。 | |
setopt extended_glob # 拡張globを有効にする。 | |
setopt mark_dirs # globでパスを生成したときに、パスがディレクトリだったら最後に「/」をつける。 | |
setopt numeric_glob_sort # 辞書順ではなく数字順に並べる。 | |
setopt magic_equal_subst # コマンドライン引数の --prefix=/usr とか=以降でも補完 | |
setopt always_last_prompt # 無駄なスクロールを避ける | |
## 実行したプロセスの消費時間が3秒以上かかったら | |
## 自動的に消費時間の統計情報を表示する。 | |
REPORTTIME=3 | |
### zaw | |
bindkey '^[d' zaw-cdr | |
bindkey '^[g' zaw-git-branches | |
bindkey '^[@' zaw-gitdir | |
function zaw-src-gitdir () { | |
_dir=$(git rev-parse --show-cdup 2>/dev/null) | |
if [ $? -eq 0 ] | |
then | |
candidates=( $(git ls-files ${_dir} | perl -MFile::Basename -nle \ | |
'$a{dirname $_}++; END{delete $a{"."}; print for sort keys %a}') ) | |
fi | |
actions=("zaw-src-gitdir-cd") | |
act_descriptions=("change directory in git repos") | |
} | |
function zaw-src-gitdir-cd () { | |
BUFFER="cd $1" | |
zle accept-line | |
} | |
zaw-register-src -n gitdir zaw-src-gitdir | |
alias '..'='cd ..' | |
alias -g ...='../..' | |
alias -g ....='../../..' | |
alias -g .....='../../../..' | |
alias -g G='| grep' | |
alias -g L='| less' | |
alias -g H='| head' | |
alias -g T='| tail' | |
alias -g S='| sed' | |
alias -g C='| cat' | |
# markdownをw3mで見る | |
ress() { | |
FILENAME=$1 | |
if [ $# -lt 1 ]; then | |
echo "Usage: $0 FILENAME" | |
else | |
github-markup $FILENAME | w3m -T text/html | |
fi | |
} | |
#if (which zprof > /dev/null) ;then | |
# zprof | less | |
#fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment