Sim, você pode. Veja :help sub-replace-special ; o \= permite que você substitua por uma expressão Vim. E system() pode executar um comando externo e retornar sua saída. Veja meu exemplo trivial com hostname . Note que eu tive que usar substitute() para me livrar do (s) caractere (s) de nova linha no resultado.
:%s/_[^_]*_/\=substitute(system('hostname'),'\n','','g')/g
PS: Eu também corrigi seu padrão regexp para corresponder ao seu exemplo.