Helm y modo LaTeX

9

Cuando ejecuto el comando LaTeX-environment(vinculado C-c C-ede forma predeterminada), Helm selecciona correctamente de una lista de todos los entornos relevantes (es decir, la misma lista que obtendría sin Helm activado). El mensaje dice "Tipo de entorno: (foo predeterminado)" donde 'foo' es el valor almacenado LaTeX-default-environment(que a su vez se establece en lo que terminé usando en la última llamada LaTeX-environment). Sin embargo, si presiono regresar ahora, obtengo un entorno 'abstracto', la primera entrada en el búfer Helm.

¿Cómo puedo hacer que Helm respete LaTeX-default-environment?

Patrick Steele
fuente

Respuestas:

7

No se puede . Según helmel autor, es culpa de AUCTEX por no utilizarlo completing-readcorrectamente, lo que hace que helm-modeel candidato sea devuelto literalmente. Una posible solución se describe en el hilo vinculado que está haciendo que los autores de AUCTEX corrijan el error para cada instancia completing-reado lo reparen usted mismo.

Para hacer esto último, lo siguiente debería funcionar (no probado, la mayoría del código tomado de 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))))))
wasamasa
fuente
Gracias, supongo que el interlocutor debe actualizar su instalación de AUCTEX y comprobar si esto lo soluciona. De lo contrario, el fragmento anterior aún debería aplicarse.
wasamasa