9

js.erbテンプレートを使用してjQueryをレンダリングしています。TextMateでhtml.erbファイルを編集するとき、私は頻繁に便利なキーコンボctrl +>を使用して、次のタグを作成してから切り替えます。

<%=  %>
<%  %>
<%-  -%>
<%#  %>

このショートカットは、js.erbファイルを編集するときにデフォルトでは機能しません。バンドルエディタで、「Ruby」の下に「ERbの<%..%>または<%= ..%>を挿入」というスニペットが見つかりました。スコープセレクターに「source.js」を追加することで挿入を機能させることができましたが、キーコンボを複数回押すと、タグを切り替える代わりに、次のようなタグがタグ内に表示されました。

<%= <%=  %> %>

「ToggleERbTags」というコマンドのスコープを変更しようとしましたが、トグルが機能しないようです。助言がありますか?

2010年11月19日更新:

これは、今週リリースされた新しいバージョンのTextmate(1.5.10(1623))ではもはや問題ではありません。

4

4 に答える 4

2

これは、Textmate アップデート 1.5.10 (1623) で修正されました。

于 2011-07-18T04:02:21.023 に答える
2

これが当てはまる理由の 1 つとして、山かっこを生成するスニペットが次のように定義されていることが考えられます。

<%= $0 %>

これにより、タブ トリガーが発生した後に、このテキストがソースに挿入されます。は$0カーソルのプレースホルダーです。スニペットが完成した後の最終的な休息場所です。カーソルは中央にあり、これは単純なスニペットであるため、タブ トリガーを繰り返し実行すると、これらのブラケットがネストされます。

目的を達成するには、スクリプトで実行する必要があります。シバン行を適切に指定する限り、任意のスクリプト言語を使用できます。私は熟練したスクリプターではないので、疑似コードを使用してこれを解決しようとします。

if selected_text
    if no_wrapping_angle_brackets
        surround_with_angle_brackets
    else
        strip_angle_brackets
else
    if no_wrapping_angle_brackets
        surround_with_angle_brackets
    else
        strip_angle_brackets

少ないですが参考になれば幸いです

于 2010-10-25T02:52:28.357 に答える
1

更新された TextMate とバンドルを使用しても、この問題に遭遇しました。source.js.railsスニペットのスコープ セレクターに「ERb の <% .. %> または <%= .. %> を挿入する」を追加して修正しました。同様のコマンド「Toggle ERb Tags」のスコープセレクターを変更しないでください。これにより、ERb タグが正しく挿入され、期待どおりに切り替えられます。

于 2011-09-16T15:50:51.377 に答える
0

Ruby on Rails Textmateバンドルは、Ruby1.9での変更により古くなっている可能性があります。

tmbundleを更新すると、この問題は解決するはずです。

于 2010-10-19T01:35:13.523 に答える