Une dos espacios con búsqueda incremental

20

Al buscar usando:

C-s SPC SPC

También coincide con espacios individuales. Quiero hacer coincidir exactamente dos espacios.

Rovanion
fuente

Respuestas:

24

Úselo M-s SPCdurante Isearch para alternar los espacios en blanco coincidentes literalmente. Cuando coinciden literalmente, cada SPCcarácter que escribe se compara individualmente. (Solía ​​ser el comportamiento predeterminado de Emacs, por cierto).

Para configurar esto como la opción de personalizar el comportamiento predeterminado search-whitespace-regexpa nil. ( M-x customize-option search-whitespace-regexp.)

Consulte el manual GNU Emacs, nodo Special Isearch.

Dibujó
fuente
Gracias por esto. Podría ser bueno poner realmente la línea .emacs (set-variable 'search-whitespace-regexp nil)allí. Gracias.
Gray
1
@ Gray: set-variableno guarda el nuevo valor de forma persistente, por lo que no cambiará el comportamiento predeterminado. Creo que M-x customize-optiones lo que se necesita aquí.
Drew
Estaba hablando de eso en el archivo dot emacs. No sabía sobre la opción de personalizar. Gracias por editar
Gray
3

El uso de la búsqueda incremental regexp resuelve el problema, si escapas de los caracteres de espacio:

C-M-s \SPC\SPC

También puede usar buscar y reemplazar sin las barras invertidas, si eso es lo que busca:

M-% SPC SPC
Rovanion
fuente
Me encontré con el mismo problema hoy al construir una macro de teclado. Esta respuesta resolvió el problema para mí, aunque tuve que usar la combinación de teclas en su ESC C-slugar. Ver también github.com/leoliu/ggtags/issues/64
Jonas Dahlbæk
3

El uso de la búsqueda regexp ayuda, pero también puede asegurarse de espacios literales para la búsqueda usando C-q SPCpara citar un espacio en la búsqueda.

Para analizar la respuesta de @ Rovanion entonces, usando isearch-forward-regexp:

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

Eso buscará dos espacios consecutivos. Curiosamente, isearch-forward-regexprequiere coincidencias discretas. En busca aaade aasólo coincidirá una vez y no se repita en el segundo carácter.

dgtized
fuente
Con respecto a su última nota, imagine buscar "cero o más espacios en blanco seguidos de una cosa" y, dados los N caracteres del espacio en blanco inicial, necesita pasar por todas las coincidencias individuales N + 1. Puedo ver que es una opción razonable para proporcionar, pero sería un terrible defecto.
phils