2011-07-27 24 views
7

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)

Trả lời

0

bạn có thể muốn có một cái nhìn tại SRecode, mà là một phần của Cedet và cũng sáp nhập với Emacs:.

http://cedet.sourceforge.net/srecode.shtml

nó hơn nhằm tạo mã, nhưng có lẽ bạn có thể thích ứng với nó theo nhu cầu của bạn?

3

Yêu cầu của bạn ngay lập tức khiến tôi nghĩ về Org Babel, nhưng tôi không chắc chắn rằng nó có thể được sử dụng làm chế độ phụ ngay trong một số khu vực nhất định trong tài liệu của bạn. Nếu bạn hỏi về danh sách tổ chức, có khả năng ai đó có thể cho bạn biết cách nhận hành vi mà bạn muốn.

+0

+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ỏ. –

+0

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

0

Như sanityinc đã đề cập, điều này chắc chắn là những gì org babel là cho. Nó đã hỗ trợ một số ngôn ngữ như R, lisp, python, latex và nhiều hơn nữa. Để biết thêm thông tin về org babel, hãy xem here.

Các vấn đề liên quan