0

マークされた領域に<%%>タグをすばやく配置する方法を探しています。私はrhtml-modeでrinariを使用しています。私はそのようなことをしたい(私はrhtmlモードにいます):

たとえば、ルビーコードがあります

a.each do |e|
  puts e
end

そして私はselect-regionでそれを選択し、いくつかの魔法の鍵を入れて、私は持っています:

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

たとえば、いくつかのHTMLタグが混在するルビーコードを選択した場合、<%%>はルビーコードにのみ適用され、残りは無傷のままである必要があります。また、何も選択しない場合は、入力を待つために、真ん中にポイントを付けて<%%>を配置する必要があります。たぶんemacs関数やパッケージとして存在するようなものがあるのだろうか?

YAsnippet modのスニペットとしてそれをやろうとしていましたが、それは私が望むものとはほど遠いものです。

4

2 に答える 2

1

GNU Awkが組み込まれているOSを使用する場合は、次のような単純な1行のスクリプトを使用できます。

(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ファイルに追加し、上記の関数を評価する必要があります。

于 2012-09-18T12:09:23.783 に答える
0

ラップ領域と呼ばれる便利な小さなユーティリティがあります。

PS Emacsに埋め込まれたrubyコードを操作することは、一般的にお尻の痛みです-私はrhtmlとmumamoを試しましたが、それらが特に洗練されているとは思いませんでした。最後に、HAMLSlimを使用することにしました。これは、Emacsをしっかりとサポートするより優れたテンプレート言語です。

于 2012-09-18T16:16:49.263 に答える