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