簡體   English   中英

Emacs和嵌入式紅寶石<%%>標簽

[英]Emacs and embedded ruby <% %> tags

我正在尋找一種將<%%>標簽快速放置到標記區域的方法。 我將rinari與rhtml-mode一起使用。 我想做這樣的事情(我處於rhtml模式):

我有一個紅寶石代碼

a.each do |e|
  puts e
end

我在選擇區域中選擇它,放了一些魔術鑰匙,然后我得到了:

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

我要求它應該做到聰明,例如,如果我選擇混有一些HTML標記的紅寶石代碼,則它應僅將<%%>應用於紅寶石代碼,其余部分不受損害。 另外,如果我什么也沒選擇,它應該將<%%>放在中間,等待我的輸入。 我想知道emacs函數或軟件包中是否存在類似的東西?

我試圖做這件事,作為YAsnippet mod的一個片段,但這遠非我所希望的那樣。

如果您使用的操作系統具有內置的GNU Awk,則可以使用簡單的單行腳本:

(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文件中,並評估上面的功能。

有一個不錯的小工具,稱為包裝區域 ,您可能會發現它有用。

PS在Emacs中使用嵌入式紅寶石代碼通常是一件痛苦的事-我嘗試過rhtml和mumamo,但沒有發現它們特別優美。 最后,我決定使用HAML斯利姆 -更好的模板語言,憑借雄厚的Emacs的支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM