最新の一致する履歴項目を実行するための zsh エイリアス

最新の一致する履歴項目を実行するための zsh エイリアス

で始まる最後のターミナル コマンドを実行するエイリアスを zsh で作成したいと思います。nodeそのコマンドは で実行できます!?nodeが、 でエイリアスを作成することはできませんalias N='!?node'。このエイリアスを作成するにはどうすればよいでしょうか。

答え1

履歴の展開はコマンドラインで実行されます前にエイリアス拡張したがって、エイリアスに履歴拡張を入れても機能しません。エイリアスが拡張された後は、それ以上の履歴拡張は実行されないためです。

一方、パラメータ拡張は実行されるエイリアス拡張。代わりにこれを使用できます:

alias N='"${(z)history[(r)node *]}"'

関連情報