Tabs 代码段(嵌套代码段)中tab函数的ST3交换优先级
我发现自己经常在一个代码段中调用一个代码段,但当我扩展嵌套的代码段时,tab键会将我移动到第一个代码段的下一个条目或第一个代码段的末尾(此时,我必须替换第二个代码段的tab触发器表达式末尾的光标,并点击tab,此时第二个代码段将展开) 例如,给定的片段Tabs 代码段(嵌套代码段)中tab函数的ST3交换优先级,tabs,sublimetext3,code-snippets,Tabs,Sublimetext3,Code Snippets,我发现自己经常在一个代码段中调用一个代码段,但当我扩展嵌套的代码段时,tab键会将我移动到第一个代码段的下一个条目或第一个代码段的末尾(此时,我必须替换第二个代码段的tab触发器表达式末尾的光标,并点击tab,此时第二个代码段将展开) 例如,给定的片段[内容A${1:A}中的第一点和${2:A}中的第二点]带制表符触发器tabtrigA和片段[内容B]带制表符触发器tabtrigB 我希望能够做到以下几点: 在[1]中: tabtrigA % Hit tab to expand snippet
[内容A${1:A}中的第一点和${2:A}中的第二点]
带制表符触发器tabtrigA
和片段[内容B]
带制表符触发器tabtrigB
我希望能够做到以下几点:
在[1]中:
tabtrigA % Hit tab to expand snippet A
出[1]:
[ content **A First point in A** and ${2: Second point in A} ] % where everything between ** ** is highlighted
现在用tabtrigB
在[2]中:
[ content tabtrigB* and ${2: Second point in A} ] % where * marks location of cursor.
点击选项卡将导致:
出[2]:
[ content [ content B ]* and ${2: Second point in A} ] % where * marks location of cursor
再次点击选项卡
将跳转到代码段A的第二个条目
显然这很烦人:是否可以切换tab
的优先级分配,使其首先充当tab触发器,并且只有在没有tab触发器时才跳到下一个条目?
更新:截至2019年4月,仍然没有在代码段中触发代码段的解决方案。我认为sublime无法区分此代码段的下一个\u字段和该代码段的下一个\u字段。您只能询问它是否有下一个\u字段。但您可以使用以下解决方法:
使用TAB以外的内容触发嵌套代码段:
通过命令调色板
为嵌套代码段提供说明
。下面的代码段将作为代码段:命令调色板的说明从调色板中调用
<snippet>
<content><![CDATA[
[ content B ]
]]></content>
<description>description_for_command_palette</description>
</snippet>
您是否尝试过在用户首选项文件中设置“auto\u complete\u with_fields”:true,
?@KeithHall-是的,这似乎没有改变行为:它仍然跳转到代码段中的下一个条目(或代码段的末尾)而不是触发第二个代码段。请告诉我您是否有任何其他想法-在这个问题上搜索了一段时间,这真的很烦人!如果代码段中只有一个字段
,则答案提供了另一种解决方案。简言之,它通过指定光标u的退出位置来获得所需的结果sing${0:}
。当然,这对这里描述的案例不起作用。
{ "keys": ["enter"], "command": "next_field", "context":
[
{ "key": "has_next_field", "operator": "equal", "operand": true }
]
},
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": false}, "context":
[
{ "key": "has_next_field", "operator": "equal", "operand": true }
]
}