Sublimetext2 在ST2代码段中,$TM_当前单词是否可以被覆盖?
上下文: 我正在为Python编写一个代码片段来快速转换变量,如: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会提供这样的便利。是不是有什么
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”