Режим Helm і LaTeX


9

Коли я запускаю команду LaTeX-environment( C-c C-eза замовчуванням прив’язана ), Helm належним чином вибирає зі списку всіх відповідних середовищ (тобто той самий список, який я отримав би без включення Helm). Підказка зазначає "Тип середовища: (foo за замовчуванням)", де "foo" - це значення, яке зберігається в LaTeX-default-environment(яке, в свою чергу, встановлюється для того, що я в кінцевому підсумку використовував в останньому дзвінку LaTeX-environment). Якщо я зараз повернуся до повернення, я отримаю "абстрактне" середовище, перше введення в буфер Helm.

Як можна змусити Геля поважати LaTeX-default-environment?

Відповіді:


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.