Chế độ Helm và LaTeX


9

Khi tôi chạy lệnh LaTeX-environment(bị ràng buộc C-c C-etheo mặc định) Helm chọn đúng từ danh sách tất cả các môi trường có liên quan (nghĩa là cùng một danh sách tôi nhận được mà không bật Helm). Lời nhắc đọc "Loại môi trường: (mặc định foo)" trong đó 'foo' là giá trị được lưu trữ LaTeX-default-environment(lần lượt được đặt thành bất cứ thứ gì tôi đã sử dụng trong cuộc gọi cuối cùng LaTeX-environment). Tuy nhiên, nếu tôi quay trở lại bây giờ, tôi sẽ nhận được môi trường 'trừu tượng', mục nhập đầu tiên trong bộ đệm Helm.

Làm thế nào tôi có thể khiến Helm tôn trọng LaTeX-default-environment?

Câu trả lời:


7

Bạn không thể . Theo helmtác giả, đó là lỗi của AocateEX 'vì đã không sử dụng completing-readđúng cách khiến cho helm-modeứng viên trở lại nguyên văn. Một cách giải quyết có thể được mô tả trong luồng được liên kết, điều này làm cho các tác giả của AocateEX 'sửa lỗi cho mọi trường hợp completing-readhoặc tự vá nó.

Để thực hiện việc sau, các thao tác sau sẽ hoạt động (chưa được kiểm tra, hầu hết mã được lấy từ AocateEX):

(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))))))


Cảm ơn, đoán người hỏi phải cập nhật bản cài đặt AocateEX của anh ấy và kiểm tra xem cái này có sửa nó không. Nếu không, đoạn trích trên vẫn nên áp dụng.
wasamasa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.