Estou ciente de que posso usar /seguido por um regex para pesquisar algo. E eu posso usar ?para pesquisar para trás. E eu posso usar ne Nrepetir a pesquisa para frente e para trás.
Existem também dois atalhos interessantes: *ou #procurará a palavra sob o cursor (avançar / retroceder). Isso é muito útil! (também existem g*e g#variantes)
Mas ... Depois de selecionar o texto usando o modo visual ( v), como posso pedir ao Vim para pesquisar exatamente esse texto? Um rápido olhar para :help
... não me ajudou.
*
e#
! Seria bom se a sua pergunta também poderia explicar o queg*
eg#
faria;)Respostas:
A sequência a seguir fará o que você deseja, considerando um bloco de texto já selecionado:
"
registro por padrão)"
registro)(*) O modo "very no magic" interpreta o texto a seguir como texto sem formatação em vez de como uma expressão regular. Note no entanto que
\
e/
ainda são especiais e terá de ser tratada de outras maneiras. Se o texto não possuir caracteres considerados especiais, você poderá pular esta etapa.Fonte: Vim Tips Wiki
fonte
Você pode puxar o texto destacado primeiro. Então
/
Ctrlr
"
Que irá colar o que você arrancou após o /.
fonte
/\V<C-r>"
. Anexando\V
à sua consulta de pesquisa, você diz ao vim para usar "very no magic". As barras invertidas ainda podem causar problemas. Veja:help \V
Ctrl+R
é assim que você acessa um registro e*
é simplesmente o registro da área de transferência do sistema. Por exemplo, você também pode fazer:yaw
puxar uma palavra para registrar"
(o registro padrão) e, em seguida,/<C-r>"
procurar essa sequência./
para fazer sua pesquisa, use-o?
, pois as pesquisas reversas escapam às barras por padrão. Em seguida, você pode pressionarN
para continuar sua pesquisa na direção direta.Eu nunca senti a necessidade desse recurso, mas, considerando que você pode encontrar um recurso no Vim, acho que isso deve ajudar:
Não testei, mas, olhando o código, parece exatamente o que você está procurando.
fonte
Você pode encontrar um método para criar esse comportamento aqui no wiki do vim .
fonte
vnoremap // y/\V<C-r>=escape(@",'/\')<CR><CR>
Esta solução capacita o contexto visualmente selecionado da pesquisa vim, mesmo com caracteres de múltiplas linhas e de escape.
Adicione o seguinte código em você
.vimrc
e pesquise o conteúdo selecionado visualmente por//
. Você também pode substituir globalmente o conteúdo selecionado por/s
. Ou Substitua localmente o contexto selecionado por//
primeiro e, em seguida, selecione visualmente uma região e:'<,'>s//{new_text}
.A configuração acima é apenas sobre pesquisa. Para toda a minha configuração do vim, visite .vimrc
fonte
Nas minhas configurações em duas máquinas separadas, se eu selecionar texto e clicar
/
nele, procurarei automaticamente o texto selecionado.fonte