Quale modalità minore stampa l'apertura di apertura nell'area dell'eco?


10

Questa è una funzione davvero interessante, ma viene visualizzata solo quando si inserisce una parentesi, non quando si passa alla posizione del cursore. Esiste un comando interattivo che posso chiamare per visualizzarlo? Posso configurarlo per mostrarlo con lo spostamento del cursore?

inserisci qui la descrizione dell'immagine

Risposte:


6

Quel messaggio viene stampato quando l'inizio del sexp non è visibile nella finestra; in caso contrario, la parentesi aperta viene temporaneamente evidenziata.

Questo comportamento è implementato in simple.ele non è associato a nessuna modalità minore. È implementato usando un hook che viene eseguito quando viene inserito un personaggio.

Il messaggio / lampeggiamento effettivo proviene dal comando blink-matching-open, che puoi chiamare tu stesso. Ad esempio, è possibile avviare un timer inattivo che chiamerà questo comando ogni volta che si fa una breve pausa su una parentesi chiusa. Questo è il modo in cui funziona il built-in 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))

Lo voglio anch'io, ma come posso renderlo non temporaneo? Vale a dire che voglio che il messaggio rimanga nel minibuffer fino a quando il cursore non viene spostato.
Faheem Mitha,

4

È possibile utilizzare M-x blink-matching-open RETper visualizzare il messaggio se si è subito dopo una parentesi. Per farlo di più "al volo" potresti provare M-x show-paren-mode, anche se in realtà non ti dà questo messaggio.

Altrimenti, potresti usare qualcosa del genere

(add-hook 'post-command-hook
          (lambda ()
            (if (and (not (bobp))
                     (eq ?\) (char-syntax (char-before))))
                (blink-matching-open))))
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.