Mode helm dan LaTeX


9

Ketika saya menjalankan perintah LaTeX-environment(terikat C-c C-esecara default) Helm dengan benar memilih dari daftar semua lingkungan yang relevan (yaitu daftar yang sama yang saya dapatkan tanpa Helm dihidupkan). Prompt berbunyi "Jenis lingkungan: (default foo)" di mana 'foo' adalah nilai yang disimpan LaTeX-default-environment(yang pada gilirannya diatur ke apa pun yang akhirnya saya gunakan dalam panggilan terakhir ke LaTeX-environment). Namun, jika saya menekan return sekarang, saya mendapatkan lingkungan 'abstrak', entri pertama di buffer Helm.

Bagaimana saya bisa membuat Helm dihormati LaTeX-default-environment?

Jawaban:


7

Kamu tidak bisa . Menurut helmpenulis itu adalah kesalahan AUCTEX karena tidak menggunakan completing-readdengan benar yang membuat helm-modemengembalikan kandidat kata demi kata. Solusi yang mungkin dijelaskan dalam utas tertaut yang membuat penulis AUCTEX memperbaiki bug untuk setiap instance completing-readatau menambalnya sendiri.

Untuk melakukan yang terakhir, yang berikut ini harus berfungsi (belum teruji, sebagian besar kode diambil dari 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))))))


Terima kasih, tebak si penanya harus memperbarui pemasangan AUCTEX-nya lalu dan memeriksa apakah ini memperbaikinya. Jika tidak, cuplikan di atas masih berlaku.
wasamasa
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.