スポンサーリンク

【zsh】Z Shell の設定サンプル 高機能 zシェル

何のシェルを使っていますか?

私は常にZシェルを使用しています。なぜと聞かれると補完機能が充実しているからとしかいえませんが、
でもこの補完機能がとてもすばらしいのです。
たとえばapach の起動時に下記のコマンドをよく打つと思いますが、zshell の場合、start も補完してくれます。

/usr/local/apache2/bin/apachectl start

それからコンパイル時に configure をすると思いますが、このオプションも補完してくれます。

ということで、

yum install zsh

でインストールしましょう。
そして

zsh

でシェルが有効になります。

ユーザディレクトリに初期設定ファイルをおきましょう。

vi .zshrc

最後に私のオススメの .zshrc 設定をさらします。

オススメ設定

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 AQUA=$'%{e[1;36m%}'
local WHITE=$'%{e[1;37m%}'
local DEFAULT=$'%{e[1;m%}'

autoload -U colors
colors      # ${fg[red]}形式のカラー書式を有効化

# 補完の利用設定
autoload -U compinit
compinit

# C-s, C-qを無効にする。
setopt NO_flow_control
setopt COMPLETE_IN_WORD

# コマンドの訂正
#setopt correct

# コマンドラインの引数で --prefix=/usr などの = 以降でも補完できる
setopt magic_equal_subst

# ファイルリスト補完でもlsと同様に色をつける。
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}

# sudo でも補完の対象
zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin

# ディレクトリを水色にする。
export LS_COLORS='di=01;36'

# シェルのプロセスごとに履歴を共有
setopt share_history

# 8 ビット目を通すようになり、日本語のファイル名を表示可能
setopt print_eight_bit

# 重複したヒストリは追加しない
#setopt hist_ignore_all_dups

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

# カッコの対応などを自動的に補完
setopt auto_param_keys

# 複数の zsh を同時に使う時など history ファイルに上書きせず追加
setopt append_history

# 補完候補が複数ある時に、一覧表示
setopt auto_list

# 補完キー(Tab, Ctrl+I) を連打するだけで順に補完候補を自動で補完
setopt auto_menu

# cd をしたときにlsを実行する
#function chpwd() { ls }

umask 002

HISTSIZE=10000
SAVEHIST=10000

cdpath=(.. ~)

export LC_ALL='ja_JP.UTF-8'
export LANG='ja_JP.UTF-8'

export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/php/bin
export MANPATH=/usr/share/man:/usr/local/man:/usr/X11/man:/usr/X11R6/man
export JMANPATH=/usr/local/man:/usr/man:/usr/local/man/ja:/usr/share/man/ja:/usr/X11R6/man/ja:/usr/share/man:/usr/X11R6/man

export TERM=xterm-color

export  PAGER=lv
export  HOST=`hostname`
export  EDITOR=vim

export HISTFILE=~/.history/history.`date +%y%m%d%H%M`

export DISPLAY=`env | grep SSH_CLIENT | awk -F"=" '{print $2}' | awk -F" " '{print $1}'`:0.0

if [ `whoami` = root ]; then
prompt="$BLUE`hostname -s`# $DEFAULT"
else
prompt="$BLUE`hostname -s`$ $DEFAULT"
fi

alias   sl='ls -F'
alias   rm='rm -i'
alias   rmf='rm'
alias   cp='cp -i'
alias   mv='mv -i'
alias   h='history | tail -10'
alias   v='vim'
alias   less='lv'
alias   le='less'
alias   ll='ls -alF'

# key bind

#vi
#bindkey -v
#emacs
bindkey -e

bindkey '^J' history-beginning-search-backward # 先頭マッチのヒストリサーチ
bindkey '^F' history-beginning-search-forward # 先頭マッチのヒストリサーチ
bindkey '^A' beginning-of-line
bindkey '^B' end-of-line
bindkey '^S' beginning-of-line
タイトルとURLをコピーしました