Expanda o alias no histórico do ZSH

Expanda o alias no histórico do ZSH

Eu tenho o seguinte alias no meu zshrc

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

Essencialmente, eu uso rg (ripgrep) para mostrar todos os arquivos no diretório atual e em subdiretórios. Isso é canalizado para o fzf, onde posso selecionar alguns deles e então é aberto no neovim. Quando tudo estiver dito e feito, o comando final acaba sendo algo como

nvim my_file.cpp

No entanto, na minha história, apenas mostra o nifalias. Existe alguma maneira de substituir nifno meu histórico pelo comando que ele expandiu para like nvim my_file.cpp?

Responder1

Faça com que seu alias adicione sua expansão ao histórico com print -s.

Em vez de:

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

usar

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

A mesma coisa funciona com uma função em vez de um alias, o que significa que você pode abstrair e reutilizar o salvamento do histórico em vez de duplicá-lo em todos os seus aliases.

informação relacionada