Quando você emite :w !wc -w
, o vim cria um arquivo temporário e canaliza esse arquivo para o comando seguindo o !
, ou melhor, coloca seus dados em um arquivo temporário e pede ao seu shell para executar um comando que pareça algo como o seguinte:
(wc -w) < /tmp/vHhjUPf/2
Onde essa última parte é alguma pasta / nome de arquivo aleatório que o vim armazena seus dados. Uma coisa interessante a notar, este comando irá falhar em shells não compatíveis como peixe . Isso ocorre porque o peixe usa a sintaxe (cmd)
para a substituição de comandos, em vez de seu uso tradicional.