Skip to content

Instantly share code, notes, and snippets.

@mongrelP
Created November 11, 2009 03:18
Show Gist options
  • Save mongrelP/231528 to your computer and use it in GitHub Desktop.
Save mongrelP/231528 to your computer and use it in GitHub Desktop.
####
# .zshrc file
####
export LANG=ja_JP.UTF-8
export MANPATH=/usr/local/man:/usr/share/man
LD_LIBRARY_PATH=$HOME/lib:/usr/local/lib:/usr/X11R6/lib:/usr/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
# PATH
export INCLUDE=$HOME/include:/usr/local/include:/usr/include
PATH=./:$HOME/bin:$INCLUDE:$HOME/firefox:/usr/gnu/bin:/opt/local/bin:/usr/local/bin:$PATH:/sbin:/usr/sbin
export RUBYLIB=/home/i05/i050287/lib
export GEM_HOME=/home/i05/i050287/lib/ruby/gem
export PATH
# editer = emacs
export SVN_EDITOR="emacs"
export EDITOR="emacs"
export CLICOLOR=1
export GTEST_COLOR=1
# export SCREENDIR=$HOME/.screen
export LSCOLORS=ExFxCxDxBxegedabagacad
# function
find-grep () { find . -type f -print | xargs grep -n --binary-files=without-match $@ }
grepv () { grep -irn --binary-files=without-match $@ * | grep -v svn }
touchtodaytxt () {
TODAY=`date +%Y-%m-%d`
if [ $1 ]; then
suffix="-"$1
else
suffix=""
fi
echo "= "${TODAY}" =" >> ${TODAY}${suffix}.txt
}
fpath=(~/.zshrc.d/completion $fpath)
# alias
# (dircolorの読み込み)
case "${OSTYPE}" in
darwin*)
alias ls='ls -G'
;;
solaris*)
eval `dircolors -b ~/.dircolors`
alias ls='ls --color=auto'
;;
linux*)
eval `dircolors -b ~/.dircolors`
alias ls='ls --color=auto'
;;
esac
alias ll='ls -ltr'
alias la='ls -la'
alias dh='df -h'
alias vi='vim'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
## comp_colors
export ZLS_COLORS=$LS_COLORS
# comp_setting
autoload -Uz compinit; compinit -u
# upper/downer case comp
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
#filelist comp to ls color setting
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
#zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
## comp set cursor on
zstyle ':completion:*:default' menu select=1
# also sudo comp
zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin
#prompt setting
autoload colors
#colors
case ${UID} in
0)
PROMPT="%B%{ [31m%}%n@%m#%{ [m%}%b "
PROMPT2="%B%{ [31m%}%_#%{ [m%}%b "
SPROMPT="%B%{ [31m%}%r is correct? [n,y,a,e]:% [m%}%b "
#[ -n "${REMOTEHOST}${SSH_CONNECTION}" ] &&
#PROMPT="%{ [37m%}${HOST%%.*} ${PROMPT}"
;;
*)
PROMPT="%{ [32m%}%n%%%{ [m%} "
PROMPT2="%{ [32m%}%_%%%{ [m%} "
SPROMPT="%{ [31m%}%r is correct? [n,y,a,e]:%{ [m%} "
[ -n "${REMOTEHOST}${SSH_CONNECTION}" ] &&
PROMPT="%{ [37m%}${HOST%%.*} ${PROMPT}"
;;
esac
RPROMPT=" [%~]"
setopt prompt_subst
## no beep
setopt nobeep
## list type option
setopt list_types
##set autolist
setopt auto_list
# histry
HISTFILE=~/.histfile
HISTSIZE=10000
SAVEHIST=10000
# ex_hist
setopt extended_history
# LISTMAX
LISTMAX=0
# cdのタイミングで自動的にpushd
setopt auto_pushd
# 複数の zsh を同時に使う時など history ファイルに上書きせず追加
setopt append_history
# 補完キー(Tab, Ctrl+I) を連打するだけで順に補完候補を自動で補完機能Off
#setopt no_auto_menu
# カッコの対応などを自動的に補完
setopt auto_param_keys
# ディレクトリ名の補完で末尾の / を自動的に付加し、次の補完に備える
setopt auto_param_slash
# ビープ音を鳴らさないようにする
setopt NO_beep
# 直前と同じコマンドラインはヒストリに追加しない
setopt hist_ignore_dups
# cd -[TAB] で以前移動したディレクトリの候補
setopt pushd_ignore_dups
# auto_pushdで重複するディレクトリは記録しない
setopt correct
# 重複したヒストリは追加しない
setopt hist_ignore_all_dups
# ヒストリを呼び出してから実行する間に一旦編集できる状態になる
setopt hist_verify
# auto_list の補完候補一覧で、ls -F のようにファイルの種別をマーク表示しない
setopt NO_list_types
# コマンドラインの引数で --prefix=/usr などの = 以降でも補完できる
setopt magic_equal_subst
# ファイル名の展開でディレクトリにマッチした場合末尾に / を付加する
setopt mark_dirs
# 8 ビット目を通すようになり、日本語のファイル名を表示可能
setopt print_eight_bit
# シェルのプロセスごとに履歴を共有
setopt share_history
# Ctrl+wで、直前の/までを削除する。
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
# ディレクトリを水色にする。
#export LS_COLORS='di=01;36'
# ディレクトリ名だけで、ディレクトリの移動をする。
setopt auto_cd
# C-s, C-qを無効にする。
setopt NO_flow_control
# 改行がなくても表示
unsetopt promptcr
# ジョブ
unsetopt hup
setopt nocheckjobs
# Ctrl-s を無効
stty stop undef
# Emasc 風キーバインド
bindkey -e
set kanji-code utf-8
set convert-meta off #必須
set meta-flag on #必須
set output-meta on #必須
set input-meta on
set enable-keypad on
# screen のステータスバーに現在実行中のコマンドを表示
# cd をしたときにlsを実行する
# ref. http://nijino.homelinux.net/diary/200206.shtml#200206140
if [ "$TERM" = "screen" ]; then
chpwd () {
echo -n " _`dirs` \\"
ls
}
preexec() {
# see [zsh-workers:13180]
# http://www.zsh.org/mla/workers/2000/msg03993.html
emulate -L zsh
local -a cmd; cmd=(${(z)2})
case $cmd[1] in
fg)
if (( $#cmd == 1 )); then
cmd=(builtin jobs -l %+)
else
cmd=(builtin jobs -l $cmd[2])
fi
;;
%*)
cmd=(builtin jobs -l $cmd[1])
;;
cd)
if (( $#cmd == 2)); then
cmd[1]=$cmd[2]
fi
;&
*)
echo -n " k$cmd[1]:t \\"
return
;;
esac
local -A jt; jt=(${(kv)jobtexts})
$cmd >>(read num rest
cmd=(${(z)${(e):-\$jt$num}})
echo -n " k$cmd[1]:t \\") 2>/dev/null
}
chpwd
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment