Jaki tryb drugorzędny drukuje otwieranie paren w obszarze echa?

10

Jest to naprawdę fajna funkcja, ale wyświetla się tylko podczas wstawiania paren, a nie przy zmianie pozycji kursora. Czy istnieje interaktywne polecenie, które mogę wywołać, aby je wyświetlić? Czy mogę go skonfigurować tak, aby wyświetlał się po przesunięciu kursora?

wprowadź opis zdjęcia tutaj

wdkrnls
źródło

Odpowiedzi:

6

Ta wiadomość jest drukowana, gdy początek sexp nie jest widoczny w oknie; w przeciwnym razie paren otwierający zostanie tymczasowo podświetlony.

To zachowanie jest zaimplementowane simple.eli nie jest powiązane z żadnym trybem pomocniczym. Jest realizowany za pomocą haka, który działa po wstawieniu znaku.

Faktyczne mruganie / wiadomość pochodzi z polecenia blink-matching-open, które możesz nazwać sobą. Na przykład możesz uruchomić licznik czasu bezczynności, który wywoła to polecenie za każdym razem, gdy zatrzymasz się na krótki czas na zamykającym się filarze. W ten sposób działa wbudowany 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
źródło
Też tego chcę, ale jak sprawić, by nie było tymczasowe? Tzn. Chcę, aby wiadomość pozostała w minibuforze, dopóki kursor nie zostanie przesunięty.
Faheem Mitha
4

Możesz użyć M-x blink-matching-open RETdo wyświetlenia wiadomości, jeśli zaraz po paren. Aby zrobić to bardziej „w locie”, możesz spróbować M-x show-paren-mode, ale tak naprawdę nie daje ci tego komunikatu.

W przeciwnym razie możesz użyć czegoś takiego

(add-hook 'post-command-hook
          (lambda ()
            (if (and (not (bobp))
                     (eq ?\) (char-syntax (char-before))))
                (blink-matching-open))))
Stefan
źródło