Created
December 10, 2011 17:20
-
-
Save katsuma/1455638 to your computer and use it in GitHub Desktop.
my latest .zshrc
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
# | |
# after edit this file, type "zcompile .zshrc" | |
# | |
export LANG=ja_JP.UTF-8 | |
HISTFILE=$HOME/.zsh-history | |
HISTSIZE=100000 | |
SAVEHIST=100000 | |
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>' | |
alias l='ls -lh' | |
alias ll='ls -alh' | |
alias vi='vim' | |
alias emacs="open -a /Applications/Emacs.app/Contents/MacOS/Emacs" | |
alias g="git" | |
alias r="rails" | |
alias rs="LANG='' rails server" | |
alias bx="bundle exec" | |
autoload -U colors | |
## prompt | |
local GREEN=$'%{\e[1;32m%}' | |
local YELLOW=$'%{\e[1;33m%}' | |
local BLUE=$'%{\e[1;34m%}' | |
local DEFAULT=$'%{\e[1;m%}' | |
PROMPT=$'\n'$GREEN'${USER}@${HOSTNAME} '$YELLOW'%~ '$'\n'$DEFAULT'%(!.#.$) ' | |
autoload -Uz vcs_info | |
zstyle ':vcs_info:*' formats '[%b]' | |
zstyle ':vcs_info:*' actionformats '[%b|%a]' | |
## growlnotify | |
local COMMAND="" | |
local COMMAND_TIME="" | |
precmd () { | |
if [ "$COMMAND_TIME" -ne "0" ] ; then | |
local d=`date +%s` | |
d=`expr $d - $COMMAND_TIME` | |
if [ "$d" -ge "10" ] ; then | |
COMMAND="$COMMAND " | |
growlnotify -t "${${(s: :)COMMAND}[1]}" -m "$COMMAND" | |
fi | |
fi | |
COMMAND="0" | |
COMMAND_TIME="0" | |
psvar=() | |
LANG=en_US.UTF-8 vcs_info | |
[[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_" | |
} | |
preexec() { | |
COMMAND="${1}" | |
if [ "`perl -e 'print($ARGV[0]=~/^(?:ssh |cd|git|rak^e|vi|ss|sc|emacs|less|tail |cat |irb)/)' $COMMAND`" -ne 1 ] ; then | |
COMMAND_TIME=`date +%s` | |
fi | |
} | |
RPROMPT="%1(v|%F{cyan}%1v%f|)" | |
## キーが唐突におかしくなったのでその対応 | |
bindkey -e | |
## 履歴 via http://subtech.g.hatena.ne.jp/secondlife/20110222/1298354852 | |
bindkey '^R' history-incremental-pattern-search-backward | |
## 補完機能の強化 | |
autoload -U compinit | |
compinit | |
## コアダンプサイズを制限 | |
limit coredumpsize 102400 | |
## 出力の文字列末尾に改行コードが無い場合でも表示 | |
unsetopt promptcr | |
## 色を使う | |
setopt prompt_subst | |
## ビープを鳴らさない | |
setopt nobeep | |
## 内部コマンド jobs の出力をデフォルトで jobs -l にする | |
setopt long_list_jobs | |
## 補完候補一覧でファイルの種別をマーク表示 | |
setopt list_types | |
## サスペンド中のプロセスと同じコマンド名を実行した場合はリジューム | |
setopt auto_resume | |
## 補完候補を一覧表示 | |
setopt auto_list | |
## 直前と同じコマンドをヒストリに追加しない | |
setopt hist_ignore_dups | |
## cd 時に自動で push | |
setopt autopushd | |
## 同じディレクトリを pushd しない | |
setopt pushd_ignore_dups | |
## ファイル名で #, ~, ^ の 3 文字を正規表現として扱う | |
setopt extended_glob | |
## TAB で順に補完候補を切り替える | |
setopt auto_menu | |
## zsh の開始, 終了時刻をヒストリファイルに書き込む | |
setopt extended_history | |
## =command を command のパス名に展開する | |
setopt equals | |
## --prefix=/usr などの = 以降も補完 | |
setopt magic_equal_subst | |
## ヒストリを呼び出してから実行する間に一旦編集 | |
setopt hist_verify | |
# ファイル名の展開で辞書順ではなく数値的にソート | |
setopt numeric_glob_sort | |
## 出力時8ビットを通す | |
setopt print_eight_bit | |
## ヒストリを共有 | |
setopt share_history | |
## matchするものがなくても警告なし | |
setopt no_nomatch | |
## 補完候補のカーソル選択を有効に | |
zstyle ':completion:*:default' menu select=1 | |
## 補完候補の色づけ | |
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} | |
## sudoを付けても補完 | |
zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin | |
## ディレクトリ名だけで cd | |
setopt auto_cd | |
## カッコの対応などを自動的に補完 | |
setopt auto_param_keys | |
## ディレクトリ名の補完で末尾の / を自動的に付加し、次の補完に備える | |
setopt auto_param_slash | |
## スペルチェック | |
setopt correct | |
function ssh_screen(){ | |
eval server=\${$#} | |
screen -t $server ssh "$@" | |
} | |
if [ x$TERM = xscreen ]; then | |
alias ssh=ssh_screen | |
fi | |
# gitの管理下のルートに戻れる | |
# git home http://d.hatena.ne.jp/hitode909/20100211/1265879271 | |
function u() | |
{ | |
cd ./$(git rev-parse --show-cdup) | |
if [ $# = 1 ]; then | |
cd $1 | |
fi | |
} | |
## rvm | |
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then source "$HOME/.rvm/scripts/rvm" ; fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment