con trỏ mô tả khuôn mặt không dưới / không thể truy cập bằng con trỏ


15

Tôi thích sử dụng kết hợp describe-facecustomize-faceđể điều chỉnh sự xuất hiện của môi trường làm việc của tôi. Đôi khi quy trình công việc này thất bại khi tôi muốn thay đổi diện mạo của một vị trí mà tôi không thể tiếp cận bằng con trỏ; tiêu đề mode-line, head-line, magit-đổ lỗi, v.v. .

Có cách nào thuận tiện để mô tả khuôn mặt của một vị trí trong khung mà con trỏ không thể truy cập không? Bằng một con chuột chẳng hạn.

Câu trả lời:


7

Tôi không biết về việc sử dụng chuột, nhưng tôi thường thấy tôi dễ chạy nhất list-faces-displayvà sau đó chỉ cần tìm kiếm những gì khuôn mặt có thể được gọi hoặc quét trực quan để tìm văn bản trông giống nhau.


1
Đây là câu trả lời, IMHO. Màn hình hiển thị là WYSIWYG và nó cho phép bạn truy cập trực tiếp vào bộ đệm Tùy chỉnh cho một khuôn mặt nhất định và truy cập trực tiếp vào một mô tả hoàn chỉnh.
vẽ

Tôi đồng ý và thay đổi trạng thái. Các giải pháp khác là mát mẻ nhưng không thuận tiện.
thiệu

9

Có 4 vùng mà văn bản có thể được hiển thị trong Emacs, đây là những gì bạn có thể làm để kiểm tra từng vùng đó.

  • Dòng chế độ : Xem giá trị của mode-line-format.
  • Dòng tiêu đề : Xem giá trị của header-line-format.
  • Buffer : Nếu khuôn mặt đang ở trong một khu vực của bộ đệm bạn không thể đạt được, nhìn thấy giá trị của (buffer-string).
  • Minibuffer : Nếu điểm hiện tại trong xe buýt nhỏ, bạn có thể làm M-: (buffer-string)và điều đó sẽ mô tả nội dung của xe buýt nhỏ. Bạn có thể cần phải (setq enable-recursive-minibuffers to t)đầu tiên.
  • Fringe hoặc Margin : Không ai mà tôi biết.

Các phương pháp này sẽ cung cấp cho bạn toàn bộ nội dung của các khu vực này, vì vậy có thể mất một số lần đọc để thực sự tìm thấy khuôn mặt bạn đang tìm kiếm, nhưng chắc chắn nó sẽ ở đó. Quan trọng nhất, nó sẽ mô tả ngay cả các khu vực bạn không thể tiếp cận.
Chẳng hạn, giả sử tôi muốn biết khuôn mặt nào được sử dụng trong find-filelời nhắc.

  1. Gọi tập tin tìm với C-x C-f.
  2. Mô tả xe buýt nhỏ với M-: (buffer-string)

Điều đó sẽ cho một cái gì đó giống như đầu ra sau đây, và ngay cuối cùng là khuôn mặt tôi đang tìm kiếm.

#("Find file: ~/" 0 11 (front-sticky t rear-nonsticky t field t read-only t point-entered minibuffer-avoid-prompt face minibuffer-prompt))

Hấp dẫn! Tôi không biết (buffer-string). Nhưng làm thế nào để tôi gọi nó trong khi tôi đang ở trong xe buýt nhỏ mà không đạt được "Lệnh đã cố gắng sử dụng xe buýt nhỏ trong khi ở xe buýt nhỏ"?
thiệu

@remvee Ah, đặt biến số cho phép-đệ quy-biến đổi thành t
Malabarba

Rìa thì sao?
Tikhon Jelvis

@TikhonJelvis oh, điểm tốt. Điều đó tôi không biết.
Malabarba

Tôi nghĩ rằng cũng để lại lề?
Sigma

3

Hóa ra bạn thực sự có thể sử dụng chuột (Tôi nghĩ rằng đây có thể chính xác là những gì bạn đang tìm kiếm):

  ;; based on: /emacs//a/19585/13444
  (defun brds/describe-char-at-mouse-click (click-event)
    "`describe-char' at CLICK-EVENT's position.
CLICK-EVENT should be a mouse-click event."
    (interactive "e")
    (run-hooks 'mouse-leave-buffer-hook)
    (let ((pos (cadr (event-start click-event))))
      (describe-char pos)))

  ;; <d>escribe
  (global-set-key (kbd "C-c d <down-mouse-1>")
                  #'brds/describe-char-at-mouse-click)

Điều này dường như không làm việc cho tôi trong mô hình. Nó có làm việc cho bạn ở bất kỳ nơi nào được đề cập trong câu hỏi không?
zck

Làm việc cho tôi trên magit-blamecác tiêu đề, cũng như, ở mức tối thiểu, các ứng cử viên hoàn thành xe buýt nhỏ, nhắc nhở xe buýt nhỏ và cửa sổ bật lên của công ty. Điều đó nói rằng, nó cũng không hoạt động đối với tôi khi tôi gọi nó trên chế độ hoặc dòng tiêu đề: những thứ đó cho tôi (wrong-type-argument number-or-marker-p header-line)(hoặc [...] mode-line, tương ứng). Tôi nghĩ đó có thể là những trường hợp đặc biệt (cùng với rìa và lề).
braham-snyder
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.