Procure por string ignorando novas linhas


11

Estou acostumado a escrever arquivos onde os parágrafos são divididos em várias linhas, por exemplo, com fill-column. Quando procuro por uma string ( C-s) como this is a long text, os resultados da pesquisa não retornam os locais onde a string aparece com uma quebra de linha entre duas das palavras (como this\nis a long text).

Existe um comando que também retornaria esses resultados?

Respostas:


11

Dê uma olhada nas variáveis isearch-lax-whitespace, isearch-regexp-lax-whitespacee search-whitespace-regexp.

Se as duas primeiras variáveis ​​forem definidas como algo não nulo (por exemplo t), qualquer caractere de espaço em sua sequência de pesquisa corresponderá a qualquer sequência correspondente à expressão regular definida pela search-whitespace-regexpvariável.

Para corresponder as palavras nas quebras de linha, faça o seguinte:

(setq isearch-lax-whitespace t)
(setq isearch-regexp-lax-whitespace t)
(setq search-whitespace-regexp "[ \t\r\n]+")

Um caractere de espaço em sua consulta agora corresponde a qualquer espaço, guia ou quebra de linha várias vezes.


Obrigado, mas isso não funciona para mim. Minha versão do Emacs é 23.4.1. Aparentemente, ele não possui uma variável "isearch-lax-whitespace".
Tony

1
Sim, esses recursos foram introduzidos no Emacs 24.3. Alguma chance de atualizar para uma versão mais recente? A versão 23.4.1 já tem mais de três anos.
rekado

2
Tente isearch-forward-word, o que é obrigatório M-s wno Emacs recente.
politza

Emacs 23 não funcionou para mim, verifique se você está usando 24.
ragerdl
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.