less: / busca padrão começa na primeira linha

5

Considere o seguinte arquivo:

$ LESS= \less test
abc
def
abc

Por padrão, pesquisar /abc em less saltará para a linha 3, pois a pesquisa /pattern começa na segunda linha de acordo com man 1 less :

/pattern
       [... snipped ...]  The search starts at the second line displayed (but see the 
       -a and -j options, which change this).

-a e -j não ajudam.

É irritante que eu tenha que fazer uma pesquisa para trás ( N ) após cada pesquisa de /pattern para ter certeza de que eu não perdi nada importante na primeira linha.

Como faço para que a pesquisa de padrão less comece na primeira linha exibida?

Editar:

less versão:

$ less --version
less 436
Copyright (C) 1984-2009 Mark Nudelman

less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less
    
por cychoi 15.03.2015 / 17:56

2 respostas

2

A solução mais simples é atualizar para menos 441 ou mais recente. Do changelog:

less-440 fixes a bug in less-438 and, at the risk of some feature creep, adds one much requested feature. The -A option changes search behavior so that an initial search includes the entire displayed screen and does not skip the first line as is currently done. Non-initial searches (for example, the "n" command) continue to skip the first (target) line to allow searches to proceed past the current screen.

less-441 changes the search behavior so that the new -A option introduced in less-440 is now the default. The -A option now changes the behavior to the old, pre-440, behavior.

A opção -a e -j pode fazer com que a pesquisa comece além da linha de tela superior, mas não acho que elas possam fazer com que a pesquisa comece na linha de tela superior - é por isso que a opção -A foi adicionada (e tornou o padrão, aparentemente era muito popular).

    
por 15.03.2015 / 23:56
1

A melhor solução que consegui fazer é usar o recurso "KEEP current position" para destacar o texto correspondente, mas não pule para a linha de destino:

/ CTRL + K pattern

No entanto, incorre em pressionamentos de teclas adicionais.

editar:

O problema foi corrigido na versão mais recente de less . Consulte @ resposta de Gilles para detalhes.

    
por 15.03.2015 / 18:03

Tags