9

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

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

编辑 js.erb 文件时,此快捷方式默认不起作用。在 Bundle Editor 中,我在“Ruby”下找到了一个名为“Insert ERb's <% .. %> or <%= .. %>”的片段。通过将“source.js”添加到范围选择器中,我能够使插入工作,但是当我多次按下组合键时,我没有切换标签,而是在标签内部得到了一个标签,如下所示:

<%= <%=  %> %>

我尝试更改名为“Toggle ERb Tags”的命令的范围,但我似乎无法切换工作。有什么建议么?

2010 年 11 月 19 日更新:

这在本周推出的新版Textmate中不再是问题:1.5.10(1623)。

4

4 回答 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

不多,但我希望这会有所帮助

于 2010-10-25T02:52:28.357 回答
2

这已通过 Textmate 更新 1.5.10 (1623) 修复。

于 2011-07-18T04:02:21.023 回答
1

即使使用更新的 TextMate 和捆绑包,我也遇到了这个问题。我通过添加source.js.rails到片段“插入 ERb 的 <% .. %> 或 <%= .. %>”的范围选择器来修复它。确保您没有更改类似命令“Toggle ERb Tags”的范围选择器。这会正确插入 ERb 标签并按预期切换它们。

于 2011-09-16T15:50:51.377 回答
0

由于 Ruby 1.9 中的更改,您的 Ruby on Rails Textmate 包可能已过时。

更新您的 tmbundle,这个问题应该会消失。

于 2010-10-19T01:35:13.523 回答