Shell

展開 ZSH 歷史中的別名

  • May 30, 2019

我的 zshrc 中有以下別名

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

本質上,我使用 rg (ripgrep) 來顯示目前目錄和子目錄中的所有文件。這通過管道傳輸到 fzf 中,我可以在其中選擇其中一些,然後在 neovim 中打開它。當一切都說完了,最後的命令最終變成了

nvim my_file.cpp

但是在我的歷史中,它只顯示nif別名。有沒有辦法nif用它擴展成的命令替換我的歷史記錄nvim my_file.cpp

使用 . 使您的別名將其自身添加到歷史記錄中print -s

代替:

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

採用

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

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

引用自:https://unix.stackexchange.com/questions/522035