エコー領域で開き括弧を印刷するマイナーモードは何ですか?


10

これは本当に素晴らしい機能ですが、かっこを挿入したときにのみ表示され、カーソル位置に変更したときは表示されません。これを表示するために呼び出すことができるインタラクティブなコマンドはありますか?カーソル移動時に表示されるように構成できますか?

ここに画像の説明を入力してください

回答:


6

そのメッセージは、sexpの先頭がウィンドウに表示されないときに出力されます。それ以外の場合、開始括弧が一時的に強調表示されます。

この動作はに実装されてsimple.elおり、マイナーモードには関連付けられていません。これは、文字が挿入されたときに実行されるフックを使用して実装されます。

実際の点滅/メッセージは、blink-matching-open自分で呼び出すことができるcommandから送られます。たとえば、閉じるかっこで短い間一時停止するたびにこのコマンドを呼び出すアイドルタイマーを開始できます。これは、組み込みが機能する方法です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))

これも欲しいのですが、どうすれば一時的ではないのですか?つまり、カーソルが移動するまでメッセージをミニバッファーに留めておきます。
Faheem Mitha

4

M-x blink-matching-open RETかっこの直後にいる場合は、を使用してメッセージを表示できます。もっと「オンザフライ」でそれを行うにM-x show-paren-modeは、実際にこのメッセージが表示されるわけではありません。

それ以外の場合は、次のようなものを使用できます

(add-hook 'post-command-hook
          (lambda ()
            (if (and (not (bobp))
                     (eq ?\) (char-syntax (char-before))))
                (blink-matching-open))))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.