Edited at

Zshのエイリアスの好きなところに引数を取りたい

More than 3 years have passed since last update.


何をしたいのか

例えば、こんな感じでエイリアスの途中に引数を取りたい。

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) }'


参考文献