vim procura pelo nome da variável sublinhado com *

2

Quando eu pressiono * em um nome de variável como hello , O vim destacará nomes como this->hello ou this.hello , mas não _hello .

É um comportamento muito estranho porque eu posso destacar todos os hello por /hello . Mas por algum motivo, * se comporta de maneira diferente de / .

Existe alguma maneira de tornar * realçar todos os hello ?

    
por Hai Feng Kao 10.09.2016 / 21:56

2 respostas

5

Quando você usa a chave * , ela pesquisa efetivamente por

\<theword\>

O \<...\> ao redor significa que ele procura apenas por palavras inteiras. Então bhello não seria encontrado, no seu exemplo.

Você pode modificar os caracteres que são contados como valores que não são de palavra-chave por set iskeyword

O padrão (na minha versão) é

iskeyword=@,48-57,_,192-255

Portanto, podemos garantir que _ não faça parte disso:

set iskeyword=@,48-57,192-255,^_

Isso pode ser colocado no arquivo .vimrc ou executado com :set dentro de vim

    
por 10.09.2016 / 22:06
2

Você pode usar o comando g* em vez de * :

g*          Like "*", but don't put "\<" and "\>" around the word.
            This makes the search also find matches that are not a
            whole word.
    
por 12.09.2016 / 15:35

Tags