私の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'
同じことはエイリアスではなく関数でも機能します。つまり、すべてのエイリアスで履歴保存を複製するのではなく、抽象化して再利用できます。