weblog of key_amb

主にIT関連の技術メモ

zsh使ってみた

究極のシェルといわれるzshを使ってみた。
今までずっと、「どのサーバにも入ってるわけじゃないし、bashでいんじゃね?」と思っていたが、使ったことないというのはよくない気がした。

まだ使い倒してないのでよくわかってないことも多いが、bashよりは便利な気がする。

インストール

debianの場合:

apt-get install zsh

fedoraの場合:

yum install zsh

.zshenv, .zshrcの設定

参考記事を参考に、いまこんな感じになっている。

.zshenv:

# Change directory color when type 'ls --color'. See man dircolors.
export LSCOLORS=Exfxcxdxbxegedabagacad
export LS_COLORS='di=01;34:ln=01;35:so=01;32:ex=01;31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30'
export ZLS_COLORS=$LS_COLORS
export CLICOLOR=true

.zshrc:

HISTFILE=~/.zsh_history
HISTSIZE=1000
SAVEHIST=1000

autoload -U colors
colors

autoload -U compinit
compinit

setopt auto_cd # cd to directory with directory path only
setopt auto_pushd # pushd when cd
setopt correct # correct misspell
setopt auto_list # list complementary items
setopt extended_history # record executed time to history

zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

## prompt
setopt prompt_subst

tmp_prompt="%{${fg[cyan]}%}%n%# %{${reset_color}%}"
tmp_prompt2="%{${fg[cyan]}%}%_> %{${reset_color}%}"
tmp_rprompt="%{${fg[green]}%}[%~]%{${reset_color}%}"
tmp_sprompt="%{${fg[yellow]}%}%r is correct? [Yes, No, Abort, Edit]:%{${reset_color}%}"

PROMPT=$tmp_prompt
PROMPT2=$tmp_prompt2
RPROMPT=$tmp_rprompt
SPROMPT=$tmp_sprompt

[ -n "${REMOTEHOST}${SSH_CONNECTION}" ] &&
  PROMPT="%{${fg[white]}%}${HOST%%.*} ${PROMPT}"
;

## aliases
alias ls='ls --show-control-chars --color=auto'
alias ll='ls -l'
alias la='ls -a'
alias vi='vim'

if [ -d .zshrc.d ]; then
  for file in `find .zshrc.d -mindepth 1`; do
    source $file
  done
fi

この最後の ~/.zshrc.d/ 以下があったら読み込むというのは自前で足した。
.zshrcそのものに書きたくないカスタマイズな設定を読み込むためである。