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?

Tony
fonte

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.

rekado
fonte
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