2011-07-27 2 views
7

나는 yasnippet을 포함하여 Emacs를위한 다양한 템플릿 엔진을 보았지만, 내가 원하는 것은 다른 짐승이다. 대부분의 템플릿 엔진은 작성하는 동안 보좌합니다. 내가 원하는 것은 타이핑 세이버보다 "텍스트 생성기"입니다. 나는 그것을 구현하려하지만, 비슷한 것을하는 emacs 패키지의 구현에 대한 힌트를 줄 수 있는지 궁금해한다.Emacs 용 템플릿 엔진?

요약하면 마커 내에서 텍스트를 생성하고 임의의 키 조합을 사용하여 업데이트하려면 문서 내에서 emacs-lisp 코드를 인라인으로 (주어진 언어 또는 텍스트 형식의 주석 내에서) 포함 시키십시오. 예를 들어, 내가 다소 길고 반복적 일부 LaTeX의 코드를 생성한다고 가정하지만 몇 가지 변수를 매개 변수화 할 수있다 :

... 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... 

을 생각은, 그 때 주석 이맥스 LISP를 "평가" 더 나은

# START GENERATED TEXT 
blah blah abc more blah blah 
blah blah def more blah blah 
# END GENERATED TEXT 

또는 : 코드, 시스템은 같은 뭔가합니다 (매개 변수 abc 다음 def와 텍스트를 포함, 즉) 다음 START GENERATED TEXT 태그보고, 선택한 코드를 평가 한 결과를 삽입합니다 , Perl Text::Template과 유사한 템플릿 엔진이 있습니다. (마커를 사용하여) Perl로 작성된 비트를 구별하고 그 결과를 인라인으로 대체 할 수 있습니다. 물론이 경우 emacs-lisp를 프로그래밍 언어로 사용하십시오. (예를 들어, 필자는 Perl Text :: Template을 사용하여 PhD/TikZ 그래픽을 생성했으며, 정말 좋은 조합 이었지만 외부 프로그램 (Perl)을 사용하여 파일을 필터링 한 후 LaTeX의)

답변

0

또한 CEDET의 일부입니다 SRecode에서보고, 먹고 싶어하고 있습니다 이맥스와 합병은 :.

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

그것은 더 많은 코드 생성을 목표로,하지만 어쩌면 당신은 그것을 적용 할 수 있습니다 당신의 필요에 따라?

3

귀하의 요구 사항은 즉시 나를 Org Babel 생각했다,하지만 난 그냥 문서의 특정 지역 내에서 작은 모드로 사용할 수 있습니다 모르겠어요. 조직 목록에 질문하면 누군가가 원하는 행동을 취하는 방법을 알려줄 수 있습니다. sanityinc가 언급 한 바와 같이

+0

+1 Org Babel이 매우 흥미 롭습니다. 나는 실제로 Org를 사용하고 그것이 사소한 모드에 포함될 수 있는지 묻는 훌륭한 제안이다. –

+0

조직 목록에 대한 답변을 얻었 으면 여기에 게시하여 동의하십시오! – sanityinc

0

,이 조직 바벨가 무엇인지 확실히. 이미 R, lisp, python, latex 등의 여러 언어를 지원합니다. org babel에 대한 자세한 내용은 here을 참조하십시오.