mirror of
https://github.com/jbranchaud/til
synced 2026-01-03 15:18:01 +00:00
914 B
914 B
xargs Ignores Alias Substitution By Default
I have a number of aliases set up in my shell's RC file. For instance, I use
nvim as my main editor, but because of muscle memory, I've aliased vim to
nvim.
❯ alias vim
vim=nvim
So, I was surprised when I ran the following xargs command.
❯ rg 'some pattern' -l | xargs vim
It opened the matching files in vim rather than nvim.
The reason for this is that xargs is a separate function that does not have
an internal concept of aliases that need to be substituted.
There is, however, a trick built in to alias that we can use. By leaving a
trailing space in an alias, we tell the shell to check for an alias
substitution to expand in the following word.
So, I can alias xargs to 'xargs ' and it will respect my vim alias.
❯ alias xargs='xargs '