Não tenho certeza sobre o vi simples. Mas no Vim, você pode escrever um buffer (ou partes de um buffer) para um comando externo arbitrário via stdin, como :w !my_external_command
A ajuda não menciona que este seja um comando específico do Vim, portanto também pode estar disponível no vi. Se você está realmente usando o Vim depois de tudo e não apenas o vi, então veja :help :w_c
para detalhes.