Tabs 代码段(嵌套代码段)中tab函数的ST3交换优先级

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

我发现自己经常在一个代码段中调用一个代码段,但当我扩展嵌套的代码段时,tab键会将我移动到第一个代码段的下一个条目或第一个代码段的末尾(此时,我必须替换第二个代码段的tab触发器表达式末尾的光标,并点击tab,此时第二个代码段将展开)

例如,给定的片段
[内容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 }
    ]
    }