ZSHレコードのエイリアス拡張

ZSHレコードのエイリアス拡張

私のzshrcには次のエイリアスがあります

alias nif='nvim $(rg --files | fzf -m || echo +qa)'

デフォルトでは、rg(ripgrep)を使用して現在のディレクトリとサブディレクトリのすべてのファイルを表示します。 fzfにパイプされ、それらのいくつかを選択してneovimで開くことができます。すべてが話されて完了したら、最終的な順序は次のようになります。

nvim my_file.cpp

しかし、私の履歴にはnifエイリアスのみが表示されます。nif履歴を拡張コマンドに置き換える方法はありますかnvim my_file.cpp

答え1

エイリアスに歴史に拡張子を追加させますprint -s

変える:

alias nif='nvim $(...)'

使用

alias nif='f=$(...); print -rs nvim $f; nvim $f'

エイリアスではない関数にも同じ内容が適用されます。つまり、すべてのエイリアスにわたって履歴を複製するのではなく、履歴保存を抽象化して再利用できます。

関連情報