AUCTeX tarafından sağlanan tuş bağlantılarını yavaş yavaş öğrenme


11

Ben yaparsanız M-x forward-char, Emacs çok kullanışlı bir mesaj verir

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

Emacs dosyasındaki tüm LaTeX tuş atamaları bulabilirsiniz gerçeği göz önüne alındığında latex.elaltında LaTeX-math-defaultAUCTeX tarafından sağlanan bu LaTeX modunda (AUCTeX) Emacs bana tuş atamaları hatırlatır mümkün olabilir? Örneğin \sigmaEmacs yazdıktan sonra

You can insert "\sigma" by `s .

Bu, LaTeX modunda tuş takımlarını kademeli olarak öğrenmeye izin verdiği için çok faydalı olacaktır.


2
Sorunuzun yanıtı değil, menü çubuğu tanımlanmışsa klavye kısayollarını göstermelidir. Ve aynı şey bir açılır menü ile de mevcuttur (kısayolları gösterir) - ör (global-set-key [C-down-mouse-3] 'mouse-popup-menubar). Bu şekilde, nauseam mesajınız yok.
kanun listesi

@lawlist Ben matematik modu sembolleri menüde olmadığını yorum olacaktı, ama aslında kendi menü var! Tanımlanmış bir kısayolu olmayanlar bile, bunları üretmek için gerekli kodla birlikte gösterilir. Çok kullanışlı!
Tyler

Yanıtlar:


9

Cevabımı buradan değiştirerek , sadece LaTeX-math-default4 parçalı bir liste olan bu verileri çıkarabiliriz

(CHARACTER MACRO MENU UNICODE)

CHARACTERonu bağlamak için kullanılan karakter nerede (tamsayı gibi göründüğünü biliyorum, ama (string CHARACTER)görmek için kullanılan bir karakter ), MACROeğik çizgi olmayan Lateks makrosu MENU, menülerin adı ve UNICODEgörüntülenmesi için kullanılan unicode bir karakter Menü. Birinci ve ikinci unsurları kontrol etmek istiyoruz:

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

Çıktıyı sürekli göstermenin muhtemelen daha iyi yolları vardır, ancak post-command-hookher komuttan sonra yukarıdaki işlevi çalıştırmak için kullanmanın bir yolu vardır . Bunun yalnızca içinde çalıştığından emin olmak için bir if kullanacağızlatex-mode

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

Bu cevap için çok teşekkürler. Kodunuz çalışıyor. $ \ Sigma $ yazdıktan sonra, bir mesaj beliriyor You can insert \sigma with s. Olası bir hatayı bildirmeme izin verin, eğer $ \ oplus $ m yazarsam bir hata bildirilir Error in post-command-hook ((lambda nil (if (eq major-mode (quote latex-mode)) (show-latex-symbol-at-point)))): (wrong-type-argument characterp nil). Bunun auctexbir kısayol ayarlamadığı gerçeğinden kaynaklandığını düşünüyorum oplus( oplusaltında bulunabilir LaTeX-math-default). Ve bu hatadan sonra, kod çalışmıyor gibi görünüyor, örneğin $ \ sigma $ yazarak hiçbir şey olmuyor.
İsim

@Name Ben ne zaman yazdırmaya çalışmayın sabit CHARACTERolduğununil
erikstokes

Mükemmel. Birkaç küçük öneri: (1) Mesajın You can insert \sigma with `sdaha iyi olduğunu düşünüyorum You can insert sigma with s. (2) Şu anda yazıldıktan \rightarrowsonra mesaj You can insert rightarrow with ^Fgörünür. Mesajın You can insert \rightarrow with `C-fbelki de daha iyi olduğunu düşünüyorum .
İsim

Ve tekrar düzeltildi.
erikstokes
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.