~/.zshrc

環境が変わるたびに .zshrc をググって構築するのも面倒なので、自宅の環境で使っている .zshrc を書いておく。

# 環境変数
export JOBS=2
export LANG=ja_JP.UTF-8
export LSCOLORS=exfxcxdxbxegedabagacad
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'
export EDITOR=vim
export PATH=${PATH}:${HOME}/bin
#export TERM=xterm-256color

# プロンプトの設定
autoload colors
colors
PROMPT="%{${fg[green]}%}%n%{${reset_color}%}@%{${fg[yellow]}%}%m%{${reset_color}%}:%{${fg[red]}%}%~%{${reset_color}%}%# " 
RPROMPT="%{${fg[magenta]}%}%1v%{${reset_color}%}"

# エイリアス
alias ls='ls --color'
alias l='ls -Flvh'
alias la='l -A'
alias j='jobs -l'
alias vi='vim'
alias virc='vi ~/.zshrc; source ~/.zshrc'
alias gd='dirs -v; echo -n "select number: "; read newdir; cd +"$newdir"'
alias grep='grep --color'

# ヒストリ
HISTFILE=~/.zsh_history
HISTSIZE=100000
SAVEHIST=100000

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

# サスペンド中のプロセスと同じコマンド名を実行した場合はリジューム
setopt auto_resume

# cdのタイミングで自動的にpushd
setopt auto_pushd

# 同じディレクトリを pushd しない
setopt pushd_ignore_dups

# ディレクトリ名の補完で末尾の / を自動的に付加し、次の補完に備える
setopt auto_param_slash

# 出力時8ビットを通す
setopt print_eight_bit

# ビープを鳴らさない
setopt nobeep

# コマンドのオプション等の表示
autoload -U compinit
compinit

# TAB で順に補完候補を切り替える
setopt auto_menu

# 補完候補一覧でファイルの種別をマーク表示
setopt list_types

# 補完候補のカーソル選択を有効に
zstyle ':completion:*:default' menu select=1

# 補完候補の色づけ
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

#>>>>>>>>>> abbreviation start
typeset -A myabbrev
myabbrev=(
    "ll"    "| less"
    "lg"    "| grep"
    "lx"    "| xargs"
    "tx"    "tar xvzf"
	"tc"	"tar cvzf"
)

my-expand-abbrev() {
    local left prefix
	left=$(echo -nE "$LBUFFER" | sed -e "s/[_a-zA-Z0-9]*$//")
	prefix=$(echo -nE "$LBUFFER" | sed -e "s/.*[^_a-zA-Z0-9]\([_a-zA-Z0-9]*\)$/\1/")
	LBUFFER=$left${myabbrev[$prefix]:-$prefix}" "
}
zle -N my-expand-abbrev
bindkey     " "         my-expand-abbrev
bindkey -e
# abbreviation end <<<<<<<<<<

bindkey '' history-incremental-pattern-search-backward

# show git branch
autoload -Uz vcs_info
zstyle ':vcs_info:*' formats '[%b]'
precmd() {
    psvar=()
    LANG=en_US.UTF-8 vcs_info
    psvar[1]=$vcs_info_msg_0_
}

参考