deepblue-will/.zshrc

# -------------------------------------

# 環境変数

# -------------------------------------

# SSHで接続した先で日本語が使えるようにする

export LC_CTYPE=en_US.UTF-8

export LC_ALL=en_US.UTF-8

# エディタ

export EDITOR=vim

# ページャ

export PAGER=/usr/local/bin/vimpager

export MANPAGER=/usr/local/bin/vimpager

# homebrew cask

export HOMEBREW_CASK_OPTS="--appdir=/Applications"

# rbenv

export PATH=~/.rbenv/shims:$PATH

eval "$(rbenv init - zsh)"

# nodebrew

export PATH=~/.nodebrew/current/bin:$PATH

# -------------------------------------

# zshのオプション

# -------------------------------------

## 補完機能の強化

autoload -U compinit

compinit

# 補完で小文字でも大文字にマッチさせる

zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'

# 日本語ファイル名を表示可能にする

setopt print_eight_bit

# 入力しているコマンド名が間違っている場合にもしかして:を出す。

setopt correct

# ビープを鳴らさない

setopt no_beep

# フローコントロールを無効にする

setopt no_flow_control

# '#' 以降をコメントとして扱う

setopt interactive_comments

# 色を使う

setopt prompt_subst

# ^Dでログアウトしない。

setopt ignoreeof

# バックグラウンドジョブが終了したらすぐに知らせる。

setopt no_tify

# 直前と同じコマンドをヒストリに追加しない

setopt hist_ignore_dups

# タブによるファイルの順番切り替えをしない

unsetopt auto_menu

# cd -[tab]で過去のディレクトリにひとっ飛びできるようにする

setopt auto_pushd

# 重複したディレクトリを追加しない

setopt pushd_ignore_dups

# ディレクトリ名を入力するだけでcdできるようにする

setopt auto_cd

# 高機能なワイルドカード展開を使用する

setopt extended_glob

# ヒストリの設定

HISTFILE=~/.zsh_history

HISTSIZE=1000000

SAVEHIST=1000000

# 同時に起動したzshの間でヒストリを共有する

setopt share_history

# スペースから始まるコマンド行はヒストリに残さない

setopt hist_ignore_space

# ヒストリに保存するときに余分なスペースを削除する

setopt hist_reduce_blanks

# -------------------------------------

# パス

# -------------------------------------

# 重複する要素を自動的に削除

typeset -U path cdpath fpath manpath

path=(

$HOME/bin(N-/)

/usr/local/bin(N-/)

/usr/local/sbin(N-/)

$path

)

# -------------------------------------

# プロンプト

# -------------------------------------

autoload -Uz vcs_info

zstyle ':vcs_info:*' enable git svn

zstyle ':vcs_info:*' max-exports 6 # formatに入る変数の最大数

zstyle ':vcs_info:git:*' check-for-changes true

zstyle ':vcs_info:git:*' formats '%b@%r' '%c' '%u'

zstyle ':vcs_info:git:*' actionformats '%b@%r|%a' '%c' '%u'

setopt prompt_subst

function vcs_echo {

local st branch color

STY= LANG=en_US.UTF-8 vcs_info

st=`git status 2> /dev/null`

if [[ -z "$st" ]]; then return; fi

branch="$vcs_info_msg_0_"

if [[ -n "$vcs_info_msg_1_" ]]; then color=${fg[green]} #staged

elif [[ -n "$vcs_info_msg_2_" ]]; then color=${fg[red]} #unstaged

elif [[ -n `echo "$st" | grep "^Untracked"` ]]; then color=${fg[blue]} # untracked

else color=${fg[cyan]}

fi

echo "%{$color%}(%{$branch%})%{$reset_color%}" | sed -e s/@/"%F{yellow}@%f%{$color%}"/

}

PROMPT='

%F{yellow}[%~]%f `vcs_echo`

%(?.$.%F{red}$%f) '

# -------------------------------------

# エイリアス

# -------------------------------------

# -n 行数表示, -I バイナリファイル無視, svn関係のファイルを無視

alias grep="grep --color -n -I --exclude='*.svn-*' --exclude='entries' --exclude='*/cache/*'"

# ls

alias l="ls -la"

alias l1="ls -1"

alias ls="ls -G"

alias ll="ls -lG"

alias la="ls -lGa"

alias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'

alias mkdir='mkdir -p'

# グローバルエイリアス

alias -g L='| less'

alias -g G='| grep'

# tree

alias tree="tree -NC" # N: 文字化け対策, C:色をつける

# git

alias g='git'

alias ga='git add'

alias gb='git branch'

alias gc='git checkout'

alias gco='git commit'

alias gd='git diff'

alias gp='git push'

alias gs='git status'

# C で標準出力をクリップボードにコピーする

# mollifier delta blog : http://mollifier.hatenablog.com/entry/20100317/p1

if which pbcopy >/dev/null 2>&1 ; then

# Mac

alias -g C='| pbcopy'

elif which xsel >/dev/null 2>&1 ; then

# Linux

alias -g C='| xsel --input --clipboard'

elif which putclip >/dev/null 2>&1 ; then

# Cygwin

alias -g C='| putclip'

fi

# -------------------------------------

# キーバインド

# -------------------------------------

bindkey -e

function cdup() {

echo

cd ..

zle reset-prompt

}

zle -N cdup

bindkey '^K' cdup

bindkey "^R" history-incremental-search-backward

# -------------------------------------

# その他

# -------------------------------------

# cdしたあとで、自動的に ls する

function chpwd() { ls -1 }

# iTerm2のタブ名を変更する

function title {

echo -ne "\033]0;"$*"\007"

}