Những chế độ nhỏ in paren mở trong khu vực tiếng vang?


10

Đây là một tính năng thực sự tốt, nhưng nó chỉ hiển thị khi chèn một paren, không phải khi thay đổi vị trí con trỏ. Có một lệnh tương tác mà tôi có thể gọi để hiển thị này? Tôi có thể định cấu hình nó để hiển thị khi di chuyển con trỏ không?

nhập mô tả hình ảnh ở đây

Câu trả lời:


6

Thông điệp đó được in khi bắt đầu sexp không hiển thị trong cửa sổ; mặt khác, paren mở tạm thời được làm nổi bật.

Hành vi này được thực hiện trong simple.elvà không liên quan đến bất kỳ chế độ nhỏ nào. Nó được thực hiện bằng cách sử dụng một hook chạy khi một ký tự được chèn vào.

Nhấp nháy / tin nhắn thực tế đến từ lệnh blink-matching-open, mà bạn có thể gọi cho mình. Ví dụ, bạn có thể bắt đầu một bộ đếm thời gian nhàn rỗi sẽ gọi lệnh này bất cứ khi nào bạn tạm dừng trong một thời gian ngắn trên một paren đóng. Đây là cách mà các show-paren-modecông trình tích hợp.

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

Tôi cũng muốn điều này, nhưng làm thế nào để tôi không tạm thời? Tức là tôi muốn tin nhắn ở lại trong xe buýt nhỏ cho đến khi con trỏ được di chuyển.
Faheem Mitha

4

Bạn có thể sử dụng M-x blink-matching-open RETđể hiển thị thông báo nếu bạn ngay sau khi kết thúc. Để làm điều đó "nhanh hơn" bạn có thể muốn thử M-x show-paren-mode, tho nó không thực sự cung cấp cho bạn thông báo này.

Nếu không, bạn có thể sử dụng một cái gì đó như

(add-hook 'post-command-hook
          (lambda ()
            (if (and (not (bobp))
                     (eq ?\) (char-syntax (char-before))))
                (blink-matching-open))))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.