当我在 中编辑文件LaTeX-mode
(我猜是 AUCTeX)时,如果flyspell
已启用,则M-TAB
没有响应。我无法完成标准 LaTeX 命令 - 例如,它无法\newc
完成\newcommand
。
我找不到有关此的信息...我在 Mac OS X 上使用带有 23.3.1 Emacs 的 Aquamacs。
答案1
M-TAB 有什么用处?你的 LaTeX 菜单中“Complete Macro”后面是否有组合键?应该调用的 lisp 函数是“TeX-complete-macro”。尝试通过键入以下内容手动运行它
\newc
并将光标放在此之后并执行
M-x TeX-complete-macro
如果这有效,那么你可能只需使用以下命令重新绑定 .emacs 中的键即可
(add-hook 'TeX-mode-hook (lambda () (define-key TeX-mode-map "<M-tab>" 'TeX-complete-macro)))
更新:似乎有一个 flyspell 变量可以控制这一点:flyspell-use-meta-tab
。您可以将其设置为 nil,然后它就会起作用。
答案2
FlySpell 有一个控制该行为的变量:flyspell-use-meta-tab
。文档中说:非零表示 FlySpell 用于M-TAB
纠正单词。因此,只需将其放在.emacs
文件中即可:
(setq flyspell-use-meta-tab nil)
答案3
AUCTeX-Mailinglist 上的人们 (http://www.mail-archive.com/[电子邮件保护]/信息.html) 通常都会回答这样的问题。