「zsh anything.el-like widget」通称zawは,Emacsのanything.elみたいなインターフェイスでzshを操作できるという拡張プラグインだ.本来は様々な操作に対応しているのだが,とりあえずディレクトリ操作だけでも恐ろしいほどに便利なので,anything.elを知らない人でも導入して損はないと思う.ここでは以下の記事を参考に,zaw.zshの設定をしてみた.

1. zawをダウンロードする

今回は.zshというディレクトリを$HOME以下に作成して,そこでgit cloneを実行する.

1
2
3
$ mkdir .zsh
$ cd .zsh
$ git clone git://github.com/zsh-users/zaw.git

2. .zshrcを設定する

以下の内容を.zshrcに書き込む.sourceでzaw.zshを読み込む部分は,先ほどダウンロードしたzawディレクトリを指定する.

1
2
3
4
5
6
7
8
9
10
11
# zaw.zsh
# http://shibayu36.hatenablog.com/entry/20120130/1327937835
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
add-zsh-hook chpwd chpwd_recent_dirs
zstyle ':chpwd:*' recent-dirs-max 5000
zstyle ':chpwd:*' recent-dirs-default yes
zstyle ':completion:*' recent-dirs-insert both

source /home/yag_ays/.zsh/zaw/zaw.zsh
zstyle ':filter-select' case-insensitive yes # 絞り込みをcase-insensitiveに
bindkey '^@' zaw-cdr # zaw-cdrをbindkey

3. .zshrcを読み込む

最後に.zshrcを再度読み込んでエラーがでなければ完了.

1
$ source .zshrc

使い方

C-@(Control-@)を押すと以下のように,直近で移動したディレクトリの一覧が表示される.

この状態でキーワードを入力すると,マッチしたディレクトリだけを選ぶこともできる.深い階層のディレクトリでも名前さえ覚えていれば一発で飛ぶことができるので,非常に便利だ.