在 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'

同樣的事情適用於函數而不是別名,這意味著您可以抽象和重複使用歷史記錄保存,而不是在所有別名中複製它。

相關內容