.zshrcを晒す
なんか,周辺でzshを流行らせてしまったらしいのでネット上に晒しとく
最新版はこちら
DropboxのPublic
最新版はこちら
DropboxのPublic
#変更後はコンパイル
#$ zcompile ~/.zshrc
#設定
#$ source ~/.zshrc
# ショートカットキー
#C-r 履歴から検索
#Esc-h man呼び出し
#Esc-q 現在入力中の文字列を退避
#日本語utf-8
export LANG=ja_JP.UTF-8
# Pythonのスクリプトをカレントになければ~/bin/から探す
function myPyOpen() {
if [ -f $1 ] ; then
python $@
else
python ~/bin/$@
fi
}
# 上へ移動する
# hitode909様より拝借
function up() {
to=$(perl -le '$p=$ENV{PWD}."/";$d="/".$ARGV[0]."/";$r=rindex($p,$d);$r>=0 && print substr($p, 0, $r+length($d))' $1)
if [ "$to" = "" ]; then
echo "no such file or directory: $1" 1>&2
return 1
fi
cd $to
}
# psしてgrepする
function psgrep() {
ps auxw | head -n 1 # ラベルを表示
ps auxw | grep $* | grep -v "ps -auxww" | grep -v grep # grep プロセスを除外
}
# lsしてwaitする
function lswait() {
TARGET=$1
while test 0;
do
ls -v
echo "========================================"
sleep 1
done
}
###########
## alias ##
###########
#lsの設定
alias ls="ls --color=auto -v" #色つき, 番号順
alias la="ls -a" #隠しファイルも
alias lf="ls -F" #ディレクトリには/を
alias ll="ls -l" #詳細付き
#sl
alias -g sl="echo you are an idiot!"
alias s="ls"
#grep
alias grep="grep --color=auto"
alias fgrep="fgrep --color=auto"
alias egrep="egrep --color=auto"
#ln
alias ln="ln -i -v"
#geditのデバッグを消去
alias gedit="gedit $@ > /dev/null 2> /dev/null"
#拡張子で自動化
alias -s c=gedit
alias -s C=gedit
alias -s cpp=gedit
alias -s h=gedit
alias -s html=google-chrome
alias -s java=gedit
alias -s pdf=google-chrome
alias -s py=myPyOpen
alias -s txt=gedit
alias -s xhtml=google-chrome
alias -s xml=gedit
alias -s zip=zipinfo
#apache2
alias apache2="sudo /etc/init.d/apache2"
#sudo用gedit
alias suedit="sudo XMODIFIERS=@im=ibus GTK_IM_MODULE=xim gedit"
#stdoutをクリップボードへ
alias -g toclip=" | xsel -bi"
#stdout+stderrをクリップボードへ
alias -g toclipall=" 2>&1 | xsel -bi"
#stdoutをクリップボードとstdoutへ
alias -g andclip=" | (cat 1>&2 | xsel -bi) 2>&1"
#stdout+stderrをクリップボードとstdoutへ
alias -g andclipall=" 2>&1 | (cat 1>&2 | xsel -bi) 2>&1"
alias nautilus-pwd="nautilus ./"
#############
## 補完関係 ##
#############
#補完関数用フォルダ
fpath=(~/.compfunc ${fpath})
#コマンドラインオプションも補完
autoload -U compinit
compinit
#補完関数をできるだけ過剰に
zstyle ':completion:*' verbose yes
zstyle ':completion:*:descriptions' format '%B%d%b'
zstyle ':completion:*:messages' format '%d'
zstyle ':completion:*:warnings' format 'No matches for: %d'
zstyle ':completion:*' group-name ''
# 補完の時に大文字小文字を区別しない(但し、大文字を打った場合は小文字に変換しない)
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
#矢印キー補完選択
zstyle ':completion:*:default' menu select
#先方予測・学習機能
#autoload predict-on
#predict-on
#自動cd(cdなしでおk
setopt auto_cd
#コマンド修正提示
#setopt correct #通常
setopt correct_all #ファイル名まで考慮
#補完候補が複数ある時に、一覧表示する
setopt auto_list
#タブキー連打で補完候補を順に表示
setopt auto_menu
# 補完候補が複数ある時、一覧表示 (auto_list) せず、すぐに最初の候補を補完する
setopt menu_complete
#補完候補一覧でファイルの種別を識別マーク表示(ls -F の記号)
setopt list_types
#'='以降でも補完できるようにする( --prefix=/usr 等の場合)
setopt magic_equal_subst
#補完される前にオリジナルのコマンドまで展開してチェックする
setopt complete_aliases
## カッコの対応などを自動的に補完
setopt auto_param_keys
##############
## 履歴関係 ##
##############
#履歴の保存先
HISTFILE=$HOME/.zsh-history
## メモリに展開する履歴の数
HISTSIZE=5000
## 保存する履歴の数
SAVEHIST=100000
#直前と同じコマンドをヒストリに追加しない
setopt hist_ignore_dups
#全履歴の一覧を出力する
function history-all { history -E 1 }
#移動履歴をプッシュ(cd -[Tab]
setopt auto_pushd
#移動履歴をキューではなくスタックで番号付け(最近居た場所が上になる)
setopt pushd_minus
#移動履歴の重複禁止
setopt PUSHD_IGNORE_DUPS
####################
## その他入力関係 ##
####################
#command not foundの時にはインストール方法を提示
source /etc/zsh_command_not_found
#Ctrl-dでログアウトしない
#setopt ignore_eof
#########
## 表示 ##
#########
#補完候補にもlsと同じ色付き表示
eval `dircolors`
zstyle ':completion:*:default' list-colors ${LS_COLORS}
#kill の候補にも色付き表示
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([%0-9]#)*=0=01;31'
#末尾の/を消去しない
setopt noautoremoveslash
#出力の文字列末尾に改行コードが無い場合でも表示
unsetopt promptcr
#黒赤緑黄青紫水白
#local BLACK=$'%{\e[1;30m%}'
#local RED=$'%{\e[1;31m%}'
local GREEN=$'%{\e[1;32m%}'
#local YELLOW=$'%{\e[1;33m%}'
local BLUE=$'%{\e[1;34m%}'
#local PURPLE=$'%{\e[1;35m%}'
#local LIGHTBLUE=$'%{\e[1;36m%}'
#local WHITE=$'%{\e[1;37m%}'
local DEFAULT=$'%{\e[1;m%}'
#プロンプト
#%n ユーザー名
#%M コンピュータ名
#%c カレントディレクトリ
#通常
PROMPT=$DEFAULT"%n@%M:"$BLUE"%c"$DEFAULT"$ "
#複数行
PROMPT2="%_$ "
#確認
SPROMPT="%r is correct? [n,y,a,e]: "
#右プロンプト
#%* 時間
RPROMPT=$DEFAULT"["$GREEN"%*"$DEFAULT"]"
#複数行右プロンプト
#RPROMPT2
#タイトル
case "${TERM}" in
kterm*|xterm)
precmd() {
echo -ne "\033]0;`basename ${PWD}`[${PWD}]\007"
}
;;
esac