Skip to content

Latest commit

 

History

History
33 lines (23 loc) · 914 Bytes

xargs-ignores-alias-substitution-by-default.md

File metadata and controls

33 lines (23 loc) · 914 Bytes

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 '

source