Combine dois espaços com pesquisa incremental

20

Ao pesquisar usando:

C-s SPC SPC

Também corresponde a espaços únicos. Eu quero combinar exatamente dois espaços.

Rovanion
fonte

Respostas:

24

Use M-s SPCdurante a pesquisa para alternar literalmente os espaços em branco correspondentes. Ao corresponder literalmente, cada SPCcaractere digitado é correspondido individualmente. (Esse costumava ser o comportamento padrão do Emacs, BTW.)

Para configurar isso como a opção de personalização de comportamento padrão search-whitespace-regexppara nil. ( M-x customize-option search-whitespace-regexp.)

Veja o manual do GNU Emacs, nó Special Isearch.

Desenhou
fonte
Obrigado por isso. Pode ser bom colocar a linha .emacs (set-variable 'search-whitespace-regexp nil)lá. Obrigado.
Grey
1
@ Cinza: set-variablenão salva o novo valor persistentemente, para que não mude o comportamento padrão. Eu acho M-x customize-optionque é o que é chamado aqui.
Tirou
Ah, eu estava falando sobre isso no arquivo dot emacs. Não sabia sobre a opção de personalização. Obrigado pela edição.
Grey
3

O uso da pesquisa incremental regexp resolve o problema, se você escapar dos caracteres de espaço:

C-M-s \SPC\SPC

Você também pode usar a pesquisa e a substituição sem as barras invertidas, se é isso que você procura:

M-% SPC SPC
Rovanion
fonte
Encontrei o mesmo problema hoje ao criar uma macro de teclado. Essa resposta resolveu o problema para mim, embora eu tivesse que usar a combinação de teclas ESC C-s. Veja também github.com/leoliu/ggtags/issues/64
Jonas Dahlbæk 16/17
3

O uso da pesquisa regexp ajuda, mas você também pode garantir espaços literais para a pesquisa usando C-q SPCpara citar um espaço na pesquisa.

Para extrair a resposta de @ Rovanion, use isearch-forward-regexp:

C-M-s C-q SPC C-q SPC

Isso procurará dois espaços consecutivos. Curiosamente, isearch-forward-regexprequer correspondências discretas. Pesquisando aaapara aasó irá corresponder uma vez e não novamente no segundo personagem.

dgtized
fonte
Em relação à sua última observação, imagine procurar "zero ou mais espaços em branco seguidos por algo" e, dados N caracteres dos espaços em branco à esquerda, precisando percorrer todas as correspondências individuais N + 1. Percebo que essa é uma opção razoável para fornecer, mas seria um padrão terrível.
Phd #