2012-09-17 6 views
0

표시된 지역에 < %% 태그를 빨리 추가 할 방법을 찾고 있습니다. rinari를 rhtml-mode와 함께 사용하고 있습니다. 나는 그런 일 (나는 RHTML 모드에있어)하고 싶은 : 내가 예를 내가 선택 영역과를 선택하고있어Emacs 및 내장 루비 <% %> 태그

a.each do |e| 
    puts e 
end 

의 루비 코드를 가지고

을, 몇 가지를 넣어 매직 키와 내가있어 : 내가 혼합 일부 HTML 태그와 루비 코드를 선택한 경우 예를 들어, 스마트해야 할 필요

<% a.each do |e| %> 
    <%= puts e %> 
<% end %> 

, 그것은 단지, 코드를 루비 떠나기 <%의 %>를 적용해야 나머지는 무사합니다. 또한 아무 것도 선택하지 않으면 중간에 지점을두고 입력을 기다리는 < %%>를 입력해야합니다. 나는 이맥스 함수 나 패키지로 존재할 수도있는 것이 아닌가 궁금하다.

나는 YAsnippet 모드의 스 니펫으로 그것을하려고했지만, 내가 좋아하는 것과는 거리가 멀다.

(defun make-it-erb (begin end) 
    "Add <%=? %> for each string" 
    (interactive "r") 
    (shell-command-on-region begin end "gawk '/^[ \t]*(puts)|(print)/{ printf \"<%=\" $0 \"%>\"; next } // { printf \"<%\" $0 \"%>\" } '" nil "")) 
    (global-set-key [f7] 'make-it-erb) 

당신은 위의 기능을 당신의 .emacs 파일에 추가하고 평가해야합니다 경우

답변

1

당신은 당신이 단순한 1 ungly 줄 스크립트를 사용할 수 내장 된 GNU awk는 OS를 사용합니다.

0

유용 할 수있는 유용한 유틸리티가 있습니다 (wrap region).

P. 이맥스에서 임베디드 루비 코드로 작업하는 것은 일반적으로 엉덩이에 통증이 있습니다 - 나는 rhtml과 mumamo를 시도했지만 특히 연마 된 것을 찾지 못했습니다. 마지막으로 나는 HAMLSlim을 사용하기로 결정했다. - 더 나은 이맥스 지원이 가능한 템플릿 언어.