¿Qué modo menor imprime paren de apertura en el área de eco?

10

Esta es una característica realmente agradable, pero solo se muestra al insertar un par, no al cambiar a la posición del cursor. ¿Hay algún comando interactivo al que pueda llamar para mostrar esto? ¿Puedo configurarlo para que aparezca al mover el cursor?

ingrese la descripción de la imagen aquí

wdkrnls
fuente

Respuestas:

6

Ese mensaje se imprime cuando el comienzo del sexp no es visible en la ventana; de lo contrario, el par inicial se resalta temporalmente.

Este comportamiento se implementa simple.ely no está asociado con ningún modo menor. Se implementa utilizando un gancho que se ejecuta cuando se inserta un carácter.

El parpadeo / mensaje real proviene del comando blink-matching-open, que puede llamarse usted mismo. Por ejemplo, puede iniciar un temporizador inactivo que llamará a este comando cada vez que haga una pausa breve en un par de cierre. Esta es la forma en que funciona el incorporado show-paren-mode.

(defvar match-paren--idle-timer nil)
(defvar match-paren--delay 0.5)
(setq match-paren--idle-timer (run-with-idle-timer match-paren--delay t #'blink-matching-open))
glucas
fuente
Yo también quiero esto, pero ¿cómo hago para que no sea temporal? Es decir, quiero que el mensaje permanezca en el minibúfer hasta que se mueva el cursor.
Faheem Mitha
4

Puede usar M-x blink-matching-open RETpara mostrar el mensaje si está justo después de un par. Para hacerlo más "sobre la marcha" que le gustaría probar M-x show-paren-mode, aunque en realidad no le da este mensaje.

De lo contrario, podría usar algo como

(add-hook 'post-command-hook
          (lambda ()
            (if (and (not (bobp))
                     (eq ?\) (char-syntax (char-before))))
                (blink-matching-open))))
Stefan
fuente