【问题标题】:latex-electric-env-pair-mode in AUCTeXAUCTeX 中的乳胶电动环境对模式
【发布时间】:2012-10-31 15:46:32
【问题描述】:

普通 tex 模式的人有 added emacs 24.1 的一个非常好的特性,一个名为 latex-electric-env-pair-mode 的次要模式,它保留了现有的 \begin{...} [...] \end{...} 对匹配。 IE。在\begin{...} 标记中更改环境名称时,其对应的\end{...} 会自动更改(从已加星标的环境更改为未加星标的环境非常好,反之亦然)。

但是,与 AUCTeX 相比,tex 模式仍然很糟糕……但我真的很喜欢新的小模式。我试图通过将看起来像是使用过的所有内容从 tex-mode.el 复制到一个新文件并更改所有描述符来创建一个独立的次要模式(因此它们不会与 AUCTeX 或任何剩余的 tex-模式)。不幸的是,这不起作用,可以打开次要模式但它坏了:什么都没有发生。

我不是 (e)lisp 程序员,也就是说我并不真正了解代码。但也许有人喜欢这种次要模式的功能,可以将其移植到单机版本? 也可能有一些提供类似/相同功能的包?

如果有任何帮助,我将不胜感激!

【问题讨论】:

  • 为什么大家都说AUCTeX比普通的tex-mode好很多?常规 tex 模式可以满足我的所有需求,上次我查看它时,AUCTeX 似乎只改变了所有已经连接到我手指上的击键,并添加了一堆我永远不会使用的“插入这个”击键(它更快让我手动输入)。

标签: emacs latex elisp auctex


【解决方案1】:

您可能错过了tex-env-mark(它设置了latex-electric-env-pair-mode 稍后用于查找环境启动器/结束器的标记)或latex-syntax-propertize-rules(在缓冲区的相关部分运行tex-env-marks)或@ 的设置987654326@(它使用latex-syntax-propertize-rules,以便实际使用这些规则)。

顺便说一句,我建议您尝试以下未经测试的代码,而不是复制这些内容:

(defconst my-latex-syntax-propertize-function
   (with-temp-buffer (latex-mode) syntax-propertize-function))

(add-hook 'LaTeX-mode-hook
          (lambda ()
            (set (make-local-variable 'syntax-propertize-function)
                 my-latex-syntax-propertize-function)
            (latex-electric-env-pair-mode 1)))

【讨论】:

  • 我试过了,但它不起作用。 Messages 缓冲区备注:文件模式规范错误:(void-variable latex-syntax-propertize-rules) 事实上,我忘记了我的 latex-syntax-propertize-rules 部分但是,当包含这些部分时,复制和重命名尝试 AUCTeX 停止正常工作......所以我想你提出的解决方案(修复后)是我最好的选择。
  • 另外,我使用 C-h v 检查了 syntax-propertize-function 的值(在您的修复启用了 Electric-env-pair-mode 之后):它是 nil。我似乎在仅使用 (require 'tex-mode) 语句时未设置 latex-syntax-properize-rules 变量,因此无法应用它,对吧?
  • Duh,你说得对,latex-syntax-propertize-rules 仅在 tex 模式编译期间设置。我会更新我未经测试的食谱。
  • 仍然无法正常工作,但至少 syntax-propertize-function 不再为零。我在 pastebin (pastebin.com/sdzDrr0C) 上发布了它的值,也许你明白。对我来说,它看起来像字节码或类似的东西......
  • @elemakil:是的,它是字节码,这很正常。至于为什么不起作用……你能检查一下tex-env-mark设置的标记是否存在吗?
猜你喜欢
  • 1970-01-01
  • 2017-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多