Em less
, você pode pesquisar usando /um padrão que contenha um retorno de carro e uma nova linha? Sei que seu padrão pode terminar com uma linha usando $
(em Como incluir novas linhas em uma pesquisa em menos? ), Mas preciso que o padrão corresponda ao texto que abrange várias linhas.
Eu tentei \n
, mas isso só procura pelo n
personagem.
\n+
uma ou mais novas linhas?less
(search.c:search_range()
). A operação de pesquisa / correspondência é executada em uma única linha delimitada por nova linha de cada vez, para que você não possa corresponder além dos limites da linha. Vejaline.c:forw_raw_line()
para a implementação de "readline" como chamadosearch_range
.Respostas:
Não é possível fazer a correspondência entre os limites da linha, porque a função de pesquisa em
less
opera em uma única linha delimitada por nova linha por vez. Este é o caso, independentemente da implementação do regex do sistema (GNU, POSIX, PCRE, etc.).Observe que eu não consegui encontrar um repositório oficial de fontes para o desenvolvimento da linha principal
less
, mas para fins de revisão de código aqui, os links a seguir são da árvore de contribuição do FreeBSD.Veja search.c: search_range () para a implementação da operação de busca. O loop nele chama line.c: forw_raw_line () para recuperar o próximo bloco de conteúdo delimitado por nova linha. Esse bloco é passado para match.c: match_pattern () onde o padrão de pesquisa (expressão regular) é executado.
Para corresponder em várias linhas, você precisará usar uma ferramenta diferente. Uma opção é entrar no seu editor e usar seus recursos de pesquisa, conforme sugerido por outros. Você pode chamar o editor pressionando
v
emless
.fonte
Não sabe ao certo como fazê-lo
less
, mas você pode fazer o mesmo novim
.http://vim.wikia.com/wiki/Search_across_multiple_lines
O átomo
\\_.
encontra qualquer caractere, incluindo final de linha. O multi\\{-}
corresponde ao mínimo possível.fonte
less
está usando aed
sintaxe regex e infelizmente não suporta correspondência multilinha.https://www.gnu.org/software/gnulib/manual/html_node/ed-regular-expression-syntax.html#ed-regular-expression-syntax
Eu esperava encontrar isso também, ou pelo menos descobrir se esse bit de sintaxe foi usado em
less
:Para que eu possa usar o
.+
padrão para combinar novas linhas. Mas não, não.fonte