TextMate js.erb:切换<%= %>,<% %>。

9
我将使用js.erb模板来呈现一些jQuery。在TextMate中编辑html.erb文件时,我经常使用方便的键盘组合ctrl+>来创建并切换以下标签:
<%=  %>
<%  %>
<%-  -%>
<%#  %>

默认情况下,此快捷方式在编辑js.erb文件时无法正常工作。在Bundle Editor中,我找到了一个名为“插入ERb的<% .. %>或<%= .. %>”的代码片段,位于“Ruby”下面。通过将“source.js”添加到范围选择器中,我能够使插入工作正常,但当我多次按下键组合时,标记没有切换,而是出现了一个标记内部的标记,就像这样:

<%= <%=  %> %>

我尝试更改"切换ERb标记"命令的范围,但好像无法实现切换。有什么建议吗?

更新于2010年11月19日:

在本周发布的新版Textmate(1.5.10(1623))中,这不再是一个问题。

4个回答

2
这种情况的一个可能原因是生成尖括号代码段的代码如下所示:
<%= $0 %>

这将在触发选项卡后将此文本放入您的源代码中。 $0 是光标的占位符;它是片段完成后的最终位置。由于光标停留在中间并且这是一个简单的片段,重复执行选项卡触发器将嵌套这些括号。
要实现您想要的内容,必须在脚本中执行。只要适当指定shebang行,就可以使用任何脚本语言。我不是熟练的脚本编写者,因此我将尝试使用伪代码来解决此问题。
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

虽然不多,但我希望这可以帮到你


2
这个问题已经在Textmate更新1.5.10(1623)中解决了。

1
我也遇到了这个问题,即使更新了TextMate和bundles。我通过将source.js.rails添加到片段“插入ERb的<% .. %>或<%= .. %>”的范围选择器中来解决它。确保不要更改类似于命令“切换ERb标记”的范围选择器。这样可以正确地插入ERb标记,并按预期切换它们。

0
你的 Ruby on Rails Textmate bundle 可能已过时,因为 Ruby 1.9 发生了变化。 更新你的 tmbundle,问题应该就会消失。

谢谢您的建议,但那并没有解决问题。我使用您提供的链接更新了Ruby on Rails bundle和Ruby bundle(http://github.com/drnic/ruby-tmbundle)。看起来有一些很酷的新功能,但我在js.erb文件中切换标签时仍然遇到同样的问题。 - balexand
啊,很遗憾听到这个消息。我曾经遇到类似的问题,更新解决了它。希望你能找出问题所在! - Raphomet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接