Procura por linhas começando com a string especificada no vim?

9

Eu tenho esse trecho de código:

# import ipdb; ipdb.set_trace()
def foo():
    ...
    import ipdb; ipdb.set_trace()
    ...
    # import ipdb; ipdb.set_trace()

Como devo especificar a consulta de pesquisa, para encontrar apenas as ipdblinhas não comentadas ?

Eu acho que o comando poderia ser algo como: /import ipdb/(line start flag)

niekas
fonte

Respostas:

13

Que tal agora:

/^[^#]*ipdb

O primeiro ^ancorará a correspondência no início da linha, [^#]corresponderá a qualquer caractere, exceto um #(os ^meios para corresponder a qualquer caractere, exceto os dados), e a *repetição será 0 ou mais vezes.

Veja: para mais algumas informações.:help /^ :help /[

Observe que isso corresponderá a todas as linhas com as ipdbquais não se inicia um comentário, incluindo:

import other_module, ipdb

Se você deseja apenas corresponder àqueles que começam com import ipdb, você pode usar:

/^\s*import ipdb

Aqui ^, ancorará novamente a correspondência no início da linha, \scorresponderá a qualquer caractere de espaço em branco e *repetirá isso 0 ou mais vezes.

Martin Tournoij
fonte
@niekas, depois adicione \s*entre /^e [^.
Romainl
Assim, a consulta final é: /^\s*import ipdb. Era exatamente o que eu queria.
Neykas 21/05