Alterando o texto na seleção visual atual no Vim

1

Eu tenho uma parte de uma linha visualmente selecionada. Eu gostaria de remover todos os caracteres não pertencentes à palavra na seleção e substituir todos os caracteres em branco por sublinhados.

Como eu poderia falar sobre isso?

    
por Nickolay Kolev 20.05.2011 / 21:01

1 resposta

4

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.

    
por 20.05.2011 / 21:36