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.