Esses são pipes, não arquivos regulares. Ele desaparece quando vim fecha o descritor de arquivo. Você poderia fazer:
hg cat -r 42 somefile | vim -
(há vim é informado de que pode não ser um arquivo regular, portanto, se comporta de acordo. Use vim -R - ou view - se você não quiser que vim reclame que os dados não foram salvos na saída) .
Ou com zsh , usando um arquivo temporário:
vim =(hg cat -r 42 somefile)