何をしたいのか
例えば、こんな感じでエイリアスの途中に引数を取りたい。
alias show-ssl-cert='openssl s_client -connect $1:443 -showcerts'
まあ関数定義にしちゃえば解決するんですけども、「これはエイリアスであって、断じて関数ではない」という気持ちのときもあるでしょう。
解決する
Zsh では無名関数が使えるようなので、こうします。
alias show-ssl-cert='(){ openssl s_client -connect $1:443 -showcerts }'
結局関数にするんかい!というのは置いといて、これがaliasであろうことが伝わってきてよいですね。
きっかけ
ghq, peco, hubで快適Gitライフを手に入れよう!の記事で紹介されていたエイリアスが便利で感動しまして、peco に初期値を渡したいなと思ったのがキッカケです。
alias g='(){ cd $(ghq root)/$(ghq list | peco --query "$*") }'
alias gh='(){ hub browse $(ghq list | peco --query "$*" | cut -d "/" -f 2,3) }'