zshのチートシート

extended_globは **/* とか以外にほとんど使わないので、いざ欲しいときに忘れてしまう。プロセス置換もしかり。ここでワンキーでチートシートの表示ができたら嬉しい。普段Rubyばかりでシェルスクリプトを書かないので、苦労すると思うけど、シェル関数で書いてみようかな。

やってみるとあっさりできた。以下を.zshrcに追加してC-M-hを押すと ~/zsh/cheat-sheet.conf が表示されるようになる。当然補完候補の表示同様編集中のコマンドラインは消えない!

cheat-sheet () { zle -M "`cat ~/zsh/cheat-sheet.conf`" }
zle -N cheat-sheet
bindkey "^[^h" cheat-sheet

こんな感じになる。

% ls *.o[ここでC-M-hを押すと]
<(コマンドリスト)               # コマンドの結果をファイルとして扱う
>(コマンドリスト)               # 出力先をコマンドに渡す
C-x g                           # glob展開を表示
*.o~hoge.o                      # hoge.o 以外の全ての *.o
**/*.orig(m+30) **/*(@)         # 30日以上古い**/*.origと**/*なsymlink
fix-<4-10>.gz                   # fix-4.gz〜fix-10.gzのうち存在するファイル
{0..2}                          # 0 1 2
{00..02}                        # 00 01 02

参考URL
http://jndb.pc.mycom.co.jp/column/zsh/012/index.html
http://www.gentei.org/~yuuji/rec/pc/intro-zsh.html