Tôi đã thấy các công cụ tạo khuôn mẫu khác nhau cho Emacs (bao gồm cả đoạn mã), nhưng những gì tôi muốn là một con thú khác. Hầu hết các trợ lý động cơ templating trong khi bạn đang viết. Những gì tôi muốn là nhiều hơn một "máy phát điện văn bản" hơn là một trình tiết kiệm đánh máy. Tôi chuẩn bị thực hiện nó, nhưng chỉ cần đặt câu hỏi để xem liệu bạn có thể cho tôi gợi ý để thực hiện các gói emacs mà làm một cái gì đó tương tự.Công cụ tô hoa cho Emacs?
Tổng hợp, những gì tôi muốn là đưa mã emacs-lisp vào trong tài liệu (trong nhận xét của ngôn ngữ hoặc định dạng văn bản) để tạo văn bản trong các điểm đánh dấu và cập nhật bằng cách sử dụng bất kỳ tổ hợp phím nào. Ví dụ, giả sử tôi muốn tạo ra một số mã LaTeX đó là hơi dài, và lặp đi lặp lại, nhưng mà tôi có thể parameterize với một số biến:
... rest of the normal text...
# (deftemplate my-repetitive-latex-code (parameter)
# ("blah blah" parameter "more blah blah")
#
# (defvar *latex-code-parameters* '("abc" "def"))
#
# (apply-template #'my-repetitive-latex-code *latex-code-paramters*)
#
# START GENERATED TEXT
# END GENERATED TEXT
... rest of the normal text...
Ý tưởng là, khi tôi "đánh giá" những nhận xét emacs-lisp mã, hệ thống sẽ tìm kiếm các START GENERATED TEXT
thẻ tiếp theo, và chèn kết quả của việc đánh giá các mã được lựa chọn (cụ thể là, bao gồm các văn bản với các thông số abc
và sau đó def
), một cái gì đó như:
# START GENERATED TEXT
blah blah abc more blah blah
blah blah def more blah blah
# END GENERATED TEXT
Hoặc, thậm chí tốt hơn , một số động cơ templating tương tự như Perl Text::Template, có thể để phân biệt các bit được viết bằng Perl (sử dụng các dấu), và thay thế các kết quả nội tuyến, nhưng, trong trường hợp này, sử dụng emacs-lisp làm ngôn ngữ lập trình. (Ví dụ, tôi đã sử dụng Perl Text :: Template đó để tạo đồ họa PGF/TikZ của tiến sĩ, và nó thực sự là một sự kết hợp tuyệt vời, nhưng tôi phải sử dụng một chương trình bên ngoài (Perl) để lọc các tệp trước khi được nạp vào LaTeX)
+1 Rất thú vị là Org Babel. Tôi thực sự sử dụng Org, và gợi ý tuyệt vời của yêu cầu nếu có thể được bao gồm trong một số chế độ nhỏ. –
Nếu bạn nhận được câu trả lời trong danh sách tổ chức, vui lòng đăng câu trả lời ở đây (và chấp nhận nó!) Để tất cả chúng ta có thể thấy những gì bạn đã làm. – sanityinc