Modalità timone e LaTeX


9

Quando eseguo il comando LaTeX-environment(associato per C-c C-eimpostazione predefinita) Helm seleziona correttamente da un elenco di tutti gli ambienti rilevanti (ovvero lo stesso elenco che otterrei senza Helm attivato). Il prompt riporta "Tipo di ambiente: (foo predefinito)" dove "foo" è il valore memorizzato LaTeX-default-environment(che a sua volta è impostato su qualsiasi cosa ho finito nell'ultima chiamata a LaTeX-environment). Se premo return ora, tuttavia, ottengo un ambiente "astratto", la prima voce nel buffer Helm.

Come posso far rispettare Helm LaTeX-default-environment?

Risposte:


7

Non puoi . Secondo helml'autore è colpa di AUCTEX per non aver usato completing-readcorrettamente ciò che rende helm-modeil candidato alla lettera. Una possibile soluzione è descritta nel thread collegato che sta facendo in modo che gli autori di AUCTEX risolvano il bug per ogni istanza completing-reado lo correggessero da soli.

Per fare questo, dovrebbe funzionare quanto segue (non testato, la maggior parte del codice preso da 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))))))


Grazie, indovina che l'interrogante deve aggiornare la sua installazione di AUCTEX e controllare se ciò lo risolve. In caso contrario, lo snippet sopra dovrebbe comunque essere applicato.
Wasamasa,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.