重新定义AUCTeX字体并编译键绑定

ant*_*nio 3 emacs elisp auctex

我想将诸如的字体绑定修改为C-c C-f C-b更快的名称,如C-b。要使用相关功能,我尝试使用C-h k,但是我无法正确终止键序列:实际上,当我键入时C-c C-f,它会触发TeX-font命令的帮助页面。

其次,我想覆盖中的确认C-c C-c。我不理解一般如何使用OVERRIDE-CONFIRM参数,特别是我如何在不进行确认的情况下将所有内容关联到新绑定(例如F1)。

感谢您的帮助。

Tyl*_*ler 5

auctex字体键绑定的整理特别麻烦,因为您要使用的命令将交互式功能与“ c”代码字母一起使用。因此,C-c C-f调用函数TeX-font,并且您键入的下一个字母将作为参数传递给该函数。因此C-c C-f绑定到一个函数,但充当前缀。有关完整说明,请参见链接的手册页。

这意味着作为评论提供的常规建议不足以得到您想要的。您需要调用的关键代码是TeX-font。获取正确的参数需要深入研究源代码。我在.emacs中使用以下功能:

(defun TeX-typewriter()
  (interactive)
  (TeX-font nil ?\C-t))

(defun TeX-bold()
  (interactive)
  (TeX-font nil ?\C-b))

(defun TeX-emphasis()
  (interactive)
  (TeX-font nil ?\C-e))

(defun TeX-smallcaps()
  (interactive)
  (TeX-font nil ?\C-c))
Run Code Online (Sandbox Code Playgroud)

定义了这些功能后,我将在LaTeX-mode-hook中应用键绑定:

(defun my-LaTeX-hook ()
  (local-set-key "\C-ci" 'TeX-italics)
  (local-set-key "\C-cb" 'TeX-bold)
  (local-set-key "\C-ct" 'TeX-typewriter)
  (local-set-key "\C-ce" 'TeX-emphasis)
  (local-set-key "\C-cs" 'TeX-smallcaps))

(add-hook 'LaTeX-mode-hook 'my-LaTeX-hook)
Run Code Online (Sandbox Code Playgroud)

C-c b会将TeX-bold绑定到,但是您可以在这里使用任何您喜欢的东西(例如C-b您所要求的)。