O seguinte pressupõe uma familiaridade básica com o comando Vim :substitute . Primeiro substitua os caracteres de espaço em branco por sublinhados.
:'<,'>s/\%V\s\%V/_/g
Digitar : enquanto o texto estiver visualmente selecionado preencherá automaticamente
:'<,'>
O \%V antes e depois do espaço faz com que o padrão fechado (o espaço) corresponda apenas a uma região visualmente selecionada. Em seguida, remova os caracteres não pertencentes à palavra. Digite gv para selecionar novamente a região. Então digite
:'<,'>s/\%V\W\%V//g
onde \W é um átomo de regex de Vim que significa "caractere sem palavra". Veja
:help /\%V
:help /\s
:help /\W
:help gv
Digitar o \%V pode ser complicado. O plug-in vis.vim simplifica isso permitindo que alguém execute qualquer comando ex em um arquivo visualmente selecionado região escrevendo : then B então o comando ex, simplificando o acima para
:'<,'>B s/\s/_/g
gv
:'<,'>B s/\W//g
onde, novamente, o Vim preenche a parte '<,'> para você.
Editar
Eu substituí "espaço" por "caracteres em branco" acima depois de reler a pergunta.