โหมด Helm และ LaTeX


9

เมื่อฉันเรียกใช้คำสั่งLaTeX-environment(ผูกไว้กับC-c C-eค่าเริ่มต้น) Helm เลือกอย่างถูกต้องจากรายการของสภาพแวดล้อมที่เกี่ยวข้องทั้งหมด (เช่นรายการเดียวกันที่ฉันได้รับโดยไม่ต้องเปิด Helm) พรอมต์จะอ่าน "ประเภทสภาพแวดล้อม: (ค่าเริ่มต้น foo)" โดยที่ 'foo' เป็นค่าที่เก็บไว้ในLaTeX-default-environment(ซึ่งจะถูกตั้งค่าเป็นสิ่งที่ฉันลงเอยด้วยการใช้ในการโทรครั้งสุดท้ายไปLaTeX-environment) ถ้าฉันกลับมาตอนนี้ฉันจะได้สภาพแวดล้อม 'นามธรรม' ซึ่งเป็นรายการแรกในบัฟเฟอร์ Helm

ฉันจะให้ 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.