AucTeX 能自动完成吗?

AucTeX 能自动完成吗?

AUCTeX 的快速入门指南说

与 AUCTeX 中的几乎所有地方一样,您可以使用 TAB 或 SPC 键来获取可用级别名称的列表,并自动完成您开始输入的内容。

这让我觉得 AUCTeX 有一个自动完成功能。但按 TAB 键没有任何作用。我很抱歉问了这么简单的问题,但我花在搜索上的时间比我可能节省的时间要多,所以这是我放弃之前的最后手段。

那么,Emacs AUCTeX 中确实有自动完成功能吗?如果有,该如何启用它?

编辑:我刚刚发现M-TAB有问题,因为它与 OS GUI 操作绑定。我看到一个网站讨论了这个问题,它指出有两个键绑定应该是等效的:c-[ c-IESC TAB。但由于某种原因,这两个键为我写的单词提供了字典拼写更正,这与我所期望的并不完全一致。

答案1

它确实具有自动完成功能。(它的功能比任何人知道的都要多。)例如,尝试C-c C-m(用于调用宏,如\footnote\ref);输入字母“s”并按 TAB。其余部分将变得清晰。 C-c C-e将提示开始新环境。等等。

如果您将 AUCTeX 与 reftex 一起使用,请尝试C-c [提示您输入书目\cite{<key>}命令。

你应该浏览手动的与您的工作最相关的部分。

答案2

正如您所提到的,AUCTeX 具有自动完成功能,默认情况下,该M-Tab功能与许多窗口管理器相冲突。该功能称为TeX-complete-symbol您可以通过它使用它M-x TeX-complete-symbol或将它绑定到您喜欢的任何其他键。通过将以下内容插入到您的 .emacs 中,您可以C-Tab在 LaTeX 模式(即 AUCTeX)中将其绑定到:

(add-hook 'LaTeX-mode-hook
      (lambda()
        (local-set-key [C-tab] 'TeX-complete-symbol)))

C-c Ret不过,我认为使用(对于)可能更有效TeX-insert-macroC-c C-e(for LaTeX-environment)和YASnippet

答案3

截至目前,AucTEX 似乎可以与预测模式,提供“在 Emacs 中编写 LaTeX 文档的完整“智能感知”功能。”(参见AucTeX 条目有关更多信息,请参阅 EmacsWiki)。我还没有尝试过这个,但是晚上回家后我一定会尝试的。

答案4

您可以使用 Emacs 的原生动态缩写扩展来实现大多数自动完成功能。

试试看M-/。您可以不断重复M-/,以循环遍历所有可能的完成方式。

更多细节:https://www.gnu.org/software/emacs/manual/html_node/emacs/Dynamic-Abbrevs.html

相关内容