シェルで前回使った引数を使う
最近、itamae, serverspecと格闘中です。
production, stagingでうまく切り替えてroleの管理ができないか。
なんて考え中です。うまいことできないかしら。。
本題ですがzshなどを使っているケースで
gd aaa bbb ga aaa bbb
※gdはgit diff , ga は git addのaliasです。
などのコマンドを打つときに
前回使った引数を使いまわしたいシーンが度々あります。
mkdir と cdを使うケースの場合は
mkdir aaa cd $_
引数がひとつの場合は$_ を使うことで乗りきれるのですが
複数ある場合はこれではうまくいきません。
調べていると
- !!で前回のコマンドのhistoryを使えて
- !$で前回の引数の最後の値
- !:1で前回の引数の最初の値
が使えるので
gd aaa bbb ga !:1-$
と打つことで複数の引数に対応できるようです。
ただ$_とは違うので一旦展開が差し込まれる挙動が省略されて欲しいところです。
少し話は変わって
yum install hogehoge
と打った時に
sudo忘れなんてこともありますが
!!を使うことで
sudo !!
とすると前回のコマンドをsudoで実行ということも簡単にできそうです。
でもやっぱり C-p、C-a でsudoと打ってしまいそうですが。。