头盔和乳胶模式


9

当我运行命令时LaTeX-environmentC-c C-e默认情况下绑定到该命令),Helm会从所有相关环境的列表中正确选择(即,在未打开Helm的情况下我会得到的相同列表)。提示符显示为“环境类型:(默认foo)”,其中“ foo”是存储在LaTeX-default-environment其中的值(又将其设置为我上次调用时最终使用的值LaTeX-environment)。但是,如果我现在按回车键,则会得到“抽象”环境,即Helm缓冲区中的第一个条目。

如何使Helm受到尊重LaTeX-default-environment

Answers:


7

你不能。根据helm作者的说法,这是AUCTEX的错误,因为未completing-read正确使用使得helm-mode原样返回候选者。链接的线程中描述了一种可能的解决方法,它可以使AUCTEX的作者针对每个实例修复该错误,也可以自行对其进行completing-read修补。

为此,应该执行以下操作(未经测试,大多数代码均来自AUCTEX):

(eval-after-load 'latex
  '(defun LaTeX-environment (arg)
      (interactive "*P")
      (let ((environment (completing-read (concat "Environment type: (default "
                                                  (if (TeX-near-bobp)
                                                      "document"
                                                    LaTeX-default-environment)
                                                  ") ")
                                          (LaTeX-environment-list) nil t nil
                                          'LaTeX-environment-history LaTeX-default-environment)))
        ;; Get default
        (cond ((and (zerop (length environment))
                    (TeX-near-bobp))
               (setq environment "document"))
              ((zerop (length environment))
               (setq environment LaTeX-default-environment))
              (t
               (setq LaTeX-default-environment environment)))

        (let ((entry (assoc environment (LaTeX-environment-list))))
          (if (null entry)
              (LaTeX-add-environments (list environment)))

          (if arg
              (LaTeX-modify-environment environment)
            (LaTeX-environment-menu environment))))))


谢谢,猜测提问者必须先更新其AUCTEX安装,然后检查是否可以解决该问题。如果没有,上面的代码段仍然适用。
wasamasa 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.