我的 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'
同样的事情适用于函数而不是别名,这意味着您可以抽象和重用历史记录保存,而不是在所有别名中复制它。