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.