
Usando o Vim, às vezes me pego olhando para uma seção do código-fonte por um tempo e de repente quero que alguma variável apareça na tela. Isso é fácil: /<var>
o que destaca todos eles. Meu problema é que na maioria das vezes a pesquisa muda minha janela, então não estou olhando o código-fonte do mesmo lugar. Mesmo que tenha mudado apenas algumas linhas, ainda me confunde, pois preciso de alguns segundos para descobrir para onde as coisas mudaram.
É possível destacar um termo de pesquisa sem mover o cursor para a próxima correspondência?
Responder1
http://vim.wikia.com/wiki/VimTip1572
Se você usou este plugin, você pode simplesmente ativar a funcionalidade
\m
em seguida, use uma tecla do NumPad para atribuir uma cor a essa palavra em qualquer lugar, sem mover o cursor.
1
Você pode usar muitos destaques diferentes ao mesmo tempo para muitas palavras diferentes ou padrões de pesquisa mais complexos, se desejar.
Responder2
resposta do skybluemostra o cerne da ideia de como usar o destaque de pesquisa normal para realizar o que você deseja.
Estendi essa técnica criando um atalho de teclado que funciona de maneira semelhante ao*
comando, mas sem realmente passar para a próxima partida.
Meu agradecimento vai paragaryjohnpor apontar oexpand()
equivalente à *
seleção de palavras de (para evitar o uso *
e restaurar a visualização). Isso simplifica o código o suficiente para que ele possa ir diretamente no mapeamento (evita o uso de uma função). Também adicionei um mapeamento que corresponde a palavras parciais (como g*
).
:" The leader defaults to backslash, so (by default) this
:" maps \* and \g* (see :help Leader).
:" These work like * and g*, but do not move the cursor and always set hls.
:map <Leader>* :let @/ = '\<'.expand('<cword>').'\>'\|set hlsearch<C-M>
:map <Leader>g* :let @/ = expand('<cword>')\|set hlsearch<C-M>
Responder3
Você também pode definir o registro de pesquisa para a variável que deseja corresponder.
Primeiro, certifique-se de que o destaque da pesquisa esteja ativado:
:set hlsearch
Então, você pode definir o registro de pesquisa com:
:let @/="variable"
Isto irá destacar todas as ocorrências da variável sem pular para a próxima partida.
Para mais informações, veja:help @/
Responder4
Além de:
:set hlsearch
Você pode querer:
: set noincsearch