Não tenho certeza se vi é necessário para esta operação.
Existe o utilitário xclip que permite copiar qualquer coisa da saída do console para a área de transferência do servidor x.
Você deve especificar DISPLAY=:0.0 environment e executá-lo da seguinte forma:
cat file | xclip
ou para arquivo remoto
ssh remote "cat file" | xclip
Ou a partir de vi (note que desta forma irá temporariamente limpar o conteúdo do buffer vi, para revogá-lo pressione Esc + u , os dados ficarão no X cilpboard):
:%!xclip
Agora você pode colá-lo em qualquer lugar com o botão do meio do mouse (observe que CTRL+V ou shift+ins não funcionam).