Como eu vou para o primeiro resultado da pesquisa em um arquivo?

5

Existe um comando no vim para navegar até o primeiro resultado da pesquisa em um arquivo (ou seja, aquele com o menor número de linha)? Digamos, se eu fizer /foo , posso encontrar a primeira instância de foo no arquivo (não começando de onde estou no arquivo, mas começando do início do arquivo)?

    
por Jon 19.11.2013 / 16:19

6 respostas

10

ggn o levará para a primeira instância de sua pesquisa no arquivo - o gg mostra o início do arquivo e o n vai para a próxima correspondência do seu padrão.

Você também pode usar gg2n para ir para a segunda instância no arquivo ou gg42n para ir para a instância quarenta e segundas. Você também pode usar G$N para ir para a partida final ( G leva você para a linha final, $ leva você até o final dessa linha e N procura para trás) ou G$2N para ir para o penúltimo.

    
por 19.11.2013 / 18:02
7

Comandos Ex Obscuros para a vitória:

:ij[ump] foo  "jumps to first foo that is not in a comment
:ij[ump]! foo "jumps to first foo, comment or not

Veja também :il[ist] .

    
por 19.11.2013 / 18:08
4

Use o comando gg para navegar até o início do arquivo.

gg

/foo
    
por 19.11.2013 / 17:14
2

O comando gD irá procurar, na parte superior do arquivo, a palavra sob o cursor.

O comando gd relacionado irá procurar a partir do topo da função atual do tipo c.

    
por 22.11.2013 / 02:18
1

Os métodos que usam gg e pesquisam /foo ou n são bons para uso interativo, mas quando editados em lote com o argumento -S do Vim, eles não funcionarão se a palavra pesquisada for a primeira. palavra no arquivo; Nesse caso, o cursor será posicionado na segunda ocorrência.

O método infalível é um comando ex :0/foo . Emitir apenas um endereço no ex-comando levará você a esse endereço, então :12 o levará para a décima segunda linha. ed / ex / Vim suportam padrões de pesquisa como endereços, portanto, :/foo leva você para a primeira correspondência a partir da posição do cursor (implícita "." no início). :0/foo significa "primeiro 'foo' da linha zero".

    
por 02.05.2017 / 14:01
0

Outro atalho legal se o cursor estiver em uma das correspondências no arquivo:

[<C-i>

(só para ficar claro que é o colchete esquerdo ([) seguido pelo controle-i)

Isso é como usar o comando "*", mas com a primeira correspondência no arquivo, e não a próxima, após o cursor

    
por 18.11.2015 / 14:51

Tags