zshの設定メモ
ずっとbashを使ってたんですが、この前ようやくzshにして色々設定したので覚え書き程度に。メインはMacで使いますが、一応Linuxとかでも同じになるようにしています。
補間
何はともあれzsh使うならこれだけは指定しておけということなので。
autoload -U compinit
compinit
文字コード
UTF-8に設定
export LANG=ja_JP.UTF-8
プロンプト
カレントディレクトリ、ユーザー名を2行で表示。見やすいように上に改行を入れて、カレントディレクトリは黄色にしました。エスケープ使うとコピペできないのでcolorsをロードしてます。
autoload colors
colors
PROMPT="
%{${fg[yellow]}%}%~%{${reset_color}%}
[%n]$ "
PROMPT2='[%n]> '
こんな感じ。
履歴
履歴を保存するファイル指定
HISTFILE="$HOME/.zsh_history"
履歴の件数
HISTSIZE=100000
SAVEHIST=100000
重複した履歴を保存しない
setopt hist_ignore_dups
履歴を共有する
setopt share_history
先頭にスペースを入れると履歴に残さない
setopt hist_ignore_space
履歴の検索
例えば"ls "とうってからC-pでlsから始まる履歴を検索できます。複数行のコマンドのときはカーソルキーで移動できるようにしています。これのおかげでC-rの使用頻度が極端に減りました。マジ便利。
autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^P" history-beginning-search-backward-end
bindkey "^N" history-beginning-search-forward-end
cdの設定
ディレクトリ名だけで移動する。
setopt auto_cd
自動でpushdする
pushdの履歴は残さない。
setopt auto_pushd
setopt pushd_ignore_dups
ターミナルのタイトル
「ユーザー名@ホスト名」をターミナルのタイトルにだす。
case "${TERM}" in
kterm*|xterm)
precmd() {
echo -ne "\033]0;${USER}@${HOST}\007"
}
;;
esac
色の設定
ディレクトリとシンボリックリンクと実行ファイルだけ色つけました。補間の一覧も同じ色に設定してます。
export LSCOLORS=gxfxxxxxcxxxxxxxxxgxgx
export LS_COLORS='di=01;36:ln=01;35:ex=01;32'
zstyle ':completion:*' list-colors 'di=36' 'ln=35' 'ex=32'
こんな感じになります。
alias
とりえあえずlsのaliasだけ設定しました。環境ごとに設定したり、必要に応じて追記したりします。
case "${OSTYPE}" in
freebsd*|darwin*)
alias ls="ls -GF"
;;
linux*)
alias ls="ls -F --color"
;;
esac
alias la='ls -a'
alias ll='ls -l'
alias lla='ls -al'
w3mでALC検索
ふと思いついたので書いてみました。下記コマンドでALCの検索ページをw3mで開きます。便利かな?どうだろ。
$ alc 検索語
function alc() {
if [ $# != 0 ]; then
w3m "http://eow.alc.co.jp/$*/UTF-8/?ref=sa"
else
w3m "http://www.alc.co.jp/"
fi
}
その他
キーバインド
vim使いなのにシェルのキーバインドはEmacsという中途半端さ。
bindkey -e
ビープ音ならなさない
setopt nobeep
エディタ
svn propeditとかで使うエディタを指定。
export EDITOR=vi
改行のない出力をプロンプトで上書きするのを防ぐ
unsetopt promptcr
個別設定を読み込む
環境毎にパスとかaliasを設定します。
[ -f ~/.zshrc.mine ] && source ~/.zshrc.mine
コピペ用
#補間
autoload -U compinit
compinit
#文字コード
export LANG=ja_JP.UTF-8
#プロンプト
autoload colors
colors
PROMPT="
%{${fg[yellow]}%}%~%{${reset_color}%}
[%n]$ "
PROMPT2='[%n]> '
#履歴
#履歴を保存するファイル指定
HISTFILE="$HOME/.zsh_history"
#履歴の件数
HISTSIZE=100000
SAVEHIST=100000
#重複した履歴を保存しない
setopt hist_ignore_dups
#履歴を共有する
setopt share_history
#先頭にスペースを入れると履歴に残さない
setopt hist_ignore_space
#履歴の検索
autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^P" history-beginning-search-backward-end
bindkey "^N" history-beginning-search-forward-end
#cdの設定
#ディレクトリ名だけで移動する。
setopt auto_cd
#自動でpushdする
setopt auto_pushd
#pushdの履歴は残さない。
setopt pushd_ignore_dups
#ターミナルのタイトル
case "${TERM}" in
kterm*|xterm)
precmd() {
echo -ne "\033]0;${USER}@${HOST}\007"
}
;;
esac
#色の設定
export LSCOLORS=gxfxxxxxcxxxxxxxxxgxgx
export LS_COLORS='di=01;36:ln=01;35:ex=01;32'
zstyle ':completion:*' list-colors 'di=36' 'ln=35' 'ex=32'
#alias
case "${OSTYPE}" in
freebsd*|darwin*)
alias ls="ls -GF"
;;
linux*)
alias ls="ls -F --color"
;;
esac
alias la='ls -a'
alias ll='ls -l'
alias lla='ls -al'
#w3mでALC検索
function alc() {
if [ $# != 0 ]; then
w3m "http://eow.alc.co.jp/$*/UTF-8/?ref=sa"
else
w3m "http://www.alc.co.jp/"
fi
}
#その他
#キーバインド
bindkey -e
#ビープ音ならなさない
setopt nobeep
#エディタ
export EDITOR=emacs
#改行のない出力をプロンプトで上書きするのを防ぐ
unsetopt promptcr
#個別設定を読み込む
[ -f ~/.zshrc.mine ] && source ~/.zshrc.mine
- Prev Entry:svnコマンドの覚え書き
- Next Entry:FlexSDKをインストールしてみた