Sublimetext2 在ST2代码段中,$TM_当前单词是否可以被覆盖?

Sublimetext2 在ST2代码段中,$TM_当前单词是否可以被覆盖?,sublimetext2,code-snippets,Sublimetext2,Code Snippets,上下文: 我正在为Python编写一个代码片段来快速转换变量,如:variable\u foo到str(variable\u foo) 如果我使用$SELECTION,它可以正常工作。但是如果我使用$TM\u CURRENT\u WORD,它会将替换值插入变量文本的中间,就像这样:variastr(variable\u foo)ble\u foo 我可以继续使用$SELECTION,但我更希望不必先用Ctrl+d键选择变量,而$TM\U CURRENT\U WORD会提供这样的便利。是不是有什么

上下文: 我正在为Python编写一个代码片段来快速转换变量,如:
variable\u foo
str(variable\u foo)

如果我使用$SELECTION,它可以正常工作。但是如果我使用$TM\u CURRENT\u WORD,它会将替换值插入变量文本的中间,就像这样:
variastr(variable\u foo)ble\u foo

我可以继续使用$SELECTION,但我更希望不必先用Ctrl+d键选择变量,而$TM\U CURRENT\U WORD会提供这样的便利。是不是有什么东西让我忽略了这一点,还是$SELECTION是唯一的选择

作为参考,代码段的当前功能版本:
${1:type}($SELECTION)${0}


还有另一个版本:
${1:type}${SELECTION/^.*/\($0\)/g}${0}

我认为这是预期的行为。你可以使用插件来获得你想要的行为

import sublime_plugin

class ExpandInsertSnippetCommand(sublime_plugin.TextCommand):
    def run(self, edit, contents=None, name=None):
        cursors = self.view.sel()
        new_cursors = []
        for cursor in cursors:
            new_cursors.append(self.view.word(cursor))
        cursors.clear()
        for cursor in new_cursors:
            cursors.add(cursor)

        self.view.run_command("insert_snippet", {"contents": contents, "name": name})
不要对任何绑定使用“insert\u snippet”命令,而是使用“expand\u insert\u snippet”