Que modo secundário imprime o ponto de abertura na área de eco?


10

Esse é um recurso muito bom, mas é exibido apenas ao inserir um paren, não ao mudar para a posição do cursor. Existe um comando interativo que eu possa chamar para exibir isso? Posso configurá-lo para aparecer na movimentação do cursor?

insira a descrição da imagem aqui

Respostas:


6

Essa mensagem é impressa quando o início do sexp não é visível na janela; caso contrário, o ponto de abertura será temporariamente destacado.

Esse comportamento é implementado simple.ele não está associado a nenhum modo secundário. É implementado usando um gancho que é executado quando um caractere é inserido.

A mensagem / intermitente real vem do comando blink-matching-open, que você pode chamar de si mesmo. Por exemplo, você pode iniciar um timer inativo que chamará esse comando sempre que você parar por um breve período em um ponto de fechamento. É assim que o built-in show-paren-modefunciona.

(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))

Também quero isso, mas como faço para não ser temporário? Ou seja, eu quero que a mensagem permaneça no minibuffer até que o cursor seja movido.
Faheem Mitha 29/01

4

Você pode usar M-x blink-matching-open RETpara exibir a mensagem se estiver logo após um paren. Para fazer mais "on the fly", você pode tentar experimentar M-x show-paren-mode, mas na verdade não é essa a mensagem.

Caso contrário, você poderia usar algo como

(add-hook 'post-command-hook
          (lambda ()
            (if (and (not (bobp))
                     (eq ?\) (char-syntax (char-before))))
                (blink-matching-open))))
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.