Tăng tốc độ TeX-insert-macro trên \ input


10

Trong latex-modekhi tôi sử dụng TeX-insert-macrođể gõ một \input{...} vĩ mô, Auctex thuận tiện cung cấp hoàn filename, đó là rất tốt. Tuy nhiên, nó dường như tìm kiếm rất nhiều nơi để biên dịch danh sách hoàn thành, bởi vì emacs treo gần một phút trên chiếc máy tính xách tay nhỏ bé tội nghiệp của tôi.

Có cách nào TeX-insert-macrođể cung cấp hoàn thành tên tập tin câm?
"Ngốc", ý tôi là người bạn nhận được khi gọi find-file. Hầu hết thời gian tệp tôi muốn nhập chỉ là một thư mục, vì vậy sẽ tốt hơn.

Nếu điều đó là không thể, có cách nào khác để tăng tốc không?
Tôi nhận thấy khi tôi chèn \includemacro, danh sách tên tệp ngắn hơn nhiều, vì vậy có lẽ cũng có cách sử dụng danh sách đó cho \input macro.


Ngoài ra còn cdlatex-insert-filenamecó đi kèm với gói cdlate. Tôi thấy nó hữu ích cho việc chèn các tập tin đồ họa vào môi trường hình.
Vamsi

Câu trả lời:


6

Bạn có một vài giải pháp:

Đầu tiên, có một biến tùy chỉnh hành vi này : TeX-arg-input-file-search.

Nếu TeX-arg-input-filenên tìm kiếm các tập tin. Nếu giá trị là t, các tệp trong đường dẫn tìm kiếm của TeX sẽ được tìm kiếm và cung cấp để hoàn thành. Tên tệp sau đó được chèn mà không có thư mục và phần mở rộng. Nếu giá trị là 0, tên tệp có thể được chỉ định theo cách thủ công và được chèn bằng một đường dẫn liên quan đến thư mục của tệp bộ đệm hiện tại và có phần mở rộng. Nếu giá trị là ask, bạn được yêu cầu phương thức sử dụng mỗi lần TeX-arg-input-fileđược gọi.

Phần tài liệu này là, imho, không đủ rõ ràng, nhưng thiết lập nó nildường như để thực hiện công việc.

(setq TeX-arg-input-file-search nil)

Biến này ảnh hưởng đến tất cả các chức năng mà gọi TeX-arg-input-file, bao gồm input, includeusepackage. Đối với sau này, hành vi này có thể là bất ngờ.

Sau đó, có một giải pháp hacky hơn nên hoạt động cho tất cả các chức năng: TeX-arg-input-filelocalcờ cho hành vi này (ví dụ cờ này được đặt thành tcho include).

Rõ ràng, bạn có thể ghi đè bất kỳ cài đặt nào khác bằng cách chỉ cần thêm một mục nhập khác cho lệnh, vì vậy:

(add-hook 'LaTeX-mode-hook 
  (lambda nil 
     (TeX-add-symbols '("input" (TeX-arg-input-file "File" t)))))

Một giải pháp cuối cùng, nếu bạn có các phiên emacs kéo dài, chỉ đơn giản là để nó đi. Có vẻ như giai đoạn "tìm kiếm tệp" lưu trữ kết quả của nó, vì vậy nó chỉ được gọi một lần mỗi phiên.


Tuyệt vời! Tôi đã mong đợi một chút hack, đoán tôi đã đánh giá thấp auctex.
Malabarba

1
Hmpf, có vẻ như hack thực sự là con đường để đi, xem chỉnh sửa của tôi. Nếu giải pháp hacky phù hợp với nhu cầu của bạn hơn, vui lòng cho tôi biết để tôi có thể sắp xếp lại câu trả lời.
T. Verron

1
Bạn nói đúng, vì việc sử dụng đó là điều không mong muốn. Cảm ơn các cập nhật. Nó thực sự lưu trữ kết quả, nhưng độ trễ ~ 1 phút là đủ để làm phiền tôi ngay cả khi chỉ một lần cho mỗi bộ đệm.
Malabarba

1
Tôi sắp xếp lại nội dung. Nhìn lại mã, tôi đã nhầm, TeX-global-input-files(biến chứa kết quả tìm kiếm) không phải là bộ đệm cục bộ, vì vậy việc tìm kiếm chỉ diễn ra một lần trên mỗi phiên emacs . Có lẽ điều này sẽ thú vị hơn nếu nó có thể xảy ra không đồng bộ, tuy nhiên, việc đóng băng ~ 1 phút thực sự là quá lâu.
T. Verron
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.