AUCTeXによって提供されるキーバインドを徐々に学習する


11

私がそうするならM-x forward-char、Emacsは非常に有用なメッセージを出します

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

Emacsはファイル内のすべてのLaTeXのキーバインドを見つけることができるという事実を考慮するとlatex.elLaTeX-math-defaultAUCTeXが提供するのは、LaTeXのモード(AUCTeX)Emacsが私のキーバインドリコールすることを可能ですか?たとえば、\sigmaEmacsと入力すると、次のメッセージが表示されます

You can insert "\sigma" by `s .

これは、LaTeXモードでキーバインドを段階的に学習できるため、非常に便利です。


2
質問への回答ではありませんが、キーボードショートカットが定義されていれば、メニューバーにキーボードショートカットが表示されます。そして、同じことが(ショートカットを示します)ポップアップメニューで利用可能です-例えば、(global-set-key [C-down-mouse-3] 'mouse-popup-menubar)。そうすれば、メッセージが吐き気を起こすことはありません。
法律家、2015

@lawlist私は数学モードのシンボルがメニューにないことをコメントしようとしていましたが、実際には独自のメニュー全体を持っています!ショートカットが定義されていないものも、それらを作成するために必要なコードとともに表示されます。とても便利な!
タイラー

回答:


9

ここから私の答えを変更して、このデータをから取り出すことができます。これLaTeX-math-defaultは4タプルのリストです

(CHARACTER MACRO MENU UNICODE)

CHARACTERバインドに使用する文字はどこですか(整数のように見えますが、これは文字であり、表示に使用(string CHARACTER)します)、MACROスラッシュなしのLatexマクロMENU、メニューの名前、およびUNICODEでの表示に使用するUnicode文字ですメニュー。最初と2番目の要素を確認します。

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

おそらく出力を継続的に表示するためのより良い方法があるでしょうがpost-command-hook、すべてのコマンドの後に上記の関数を実行するために使用する1つの方法です。ifを使用して、これが実行されるだけであることを確認しますlatex-mode

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

この回答に感謝します。コードが機能します。$ \ sigma $と入力すると、次のメッセージが表示されますYou can insert \sigma with s。$ \ oplus $ mと入力すると、エラーが発生する可能性があるというバグの報告をさせてくださいError in post-command-hook ((lambda nil (if (eq major-mode (quote latex-mode)) (show-latex-symbol-at-point)))): (wrong-type-argument characterp nil)。これはauctexショートカットが設定されていないことが原因だと思いますoplus(にありoplusますLaTeX-math-default)。このエラー以降、コードは機能していないようです。たとえば、$ \ sigma $と入力しても何も起こりません。
名前

@name私はときに印刷しようとしないし、それを固定しCHARACTERているnil
erikstokes

完璧です。マイナーな提案はほとんどありません:(1)メッセージのYou can insert \sigma with `s方が優れていると思いますYou can insert sigma with s。(2)現在、入力後\rightarrowにメッセージYou can insert rightarrow with ^Fが表示されます。メッセージYou can insert \rightarrow with `C-fはおそらくもっと良いと思います。
名前

そして、再び修正されました。
erikstokes 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.