Dần dần học các keybindings được cung cấp bởi AocateeX


11

Nếu tôi làm M-x forward-char, Emacs đưa ra một thông điệp rất hữu ích

You can run the command "forward-char" with C-f.

Xem xét thực tế rằng Emacs có thể tìm thấy tất cả keybindings LaTeX trong file latex.eldưới LaTeX-math-defaultcung cấp bởi AUCTeX, là nó có thể rằng trong chế độ LaTeX (AUCTeX) Emacs nhắc lại cho tôi những Keybindings? Ví dụ: sau khi nhập \sigmaEmacs hiển thị một thông báo rằng

You can insert "\sigma" by `s .

Điều này sẽ rất hữu ích vì nó cho phép học dần các phím bấm trong chế độ LaTeX.


2
Không phải là một câu trả lời cho câu hỏi của bạn, nhưng thanh thực đơn sẽ hiển thị các phím tắt nếu chúng được xác định. Và, điều tương tự cũng có sẵn với menu bật lên (hiển thị các phím tắt) - ví dụ : (global-set-key [C-down-mouse-3] 'mouse-popup-menubar). Bằng cách đó, bạn không có tin nhắn quảng cáo.
luật

@lawlist Tôi sẽ nhận xét rằng các ký hiệu chế độ toán học không có trong menu, nhưng chúng thực sự có một menu hoàn toàn của riêng chúng! Ngay cả những cái không có đường cắt ngắn được xác định cũng được hiển thị, với mã cần thiết để tạo ra chúng. Rất tiện dụng!
Tyler

Câu trả lời:


9

Sửa đổi câu trả lời của tôi từ đây, chúng ta có thể lấy dữ liệu này ra LaTeX-math-default, đó là danh sách gồm 4 bộ

(CHARACTER MACRO MENU UNICODE)

nơi CHARACTERđược các nhân vật sử dụng để ràng buộc nó (Tôi biết nó trông giống như một số nguyên, nhưng đó là một nhân vật, sử dụng (string CHARACTER)để xem), MACROlà macro cao su mà không có dấu gạch chéo, MENUlà tên cho các menu và UNICODElà một nhân vật unicode dùng để trưng bày trong thực đơn. Chúng tôi muốn kiểm tra các yếu tố thứ nhất và thứ hai:

(defun show-latex-symbol-at-point ()
  (interactive)
  (let* ((sym (symbol-at-point))
         (latex-symbol (TeX-member sym LaTeX-math-default
                                   (lambda (a b)
                                     (string= a (nth 1 b)))))
         (shortcut (nth 0 latex-symbol))
         )
    (if (and latex-symbol shortcut)
        (message "You can insert \\%s with `%s"
                 (nth 1 latex-symbol)
                 (key-description (string shortcut))))))

Có thể có những cách tốt hơn để liên tục hiển thị đầu ra, nhưng một cách để sử dụng post-command-hookđể chạy chức năng trên sau mỗi lệnh. Chúng tôi sẽ sử dụng nếu để đảm bảo điều này chỉ chạy tronglatex-mode

(add-hook 'post-command-hook
          (lambda ()
            (if (bound-and-true-p LaTeX-math-mode)
                (show-latex-symbol-at-point)
              )
            ))

Rất cám ơn cho câu trả lời này. Mã của bạn hoạt động. Sau khi nhập $ \ sigma $, một thông báo xuất hiện cho biết You can insert \sigma with s. Hãy để tôi báo cáo một lỗi có thể xảy ra, nếu tôi gõ $ \ oplus $ m thì có lỗi Error in post-command-hook ((lambda nil (if (eq major-mode (quote latex-mode)) (show-latex-symbol-at-point)))): (wrong-type-argument characterp nil). Tôi nghĩ điều này là do thực tế auctexchưa đặt lối tắt cho oplus( opluscó thể tìm thấy bên dưới LaTeX-math-default). Và từ lỗi này, mã dường như không hoạt động, ví dụ: bằng cách nhập $ \ sigma $, không có gì xảy ra.
Tên

@Name tôi cố định nó để không cố gắng để in khi CHARACTERnil
erikstokes

Hoàn hảo. Vài gợi ý nhỏ: (1) Tôi nghĩ rằng thông điệp You can insert \sigma with `stốt hơn You can insert sigma with s. (2) Hiện tại sau khi gõ \rightarrowtin nhắn You can insert rightarrow with ^Fxuất hiện. Tôi nghĩ rằng tin nhắn You can insert \rightarrow with `C-fcó lẽ tốt hơn.
Tên

Và, cố định lại.
erikstokes 6/2/2015
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.