Autocomplete 升华文本3:自动完成对for循环使用了不正确的语法

Autocomplete 升华文本3:自动完成对for循环使用了不正确的语法,autocomplete,sublimetext3,Autocomplete,Sublimetext3,使用sublime text 3,键入“for”并点击选项卡时的自动完成功能为您提供: for x in xrange(1,10): pass 但是,这对于Python3来说不是有效的语句。我尝试使用以下方法创建新的构建系统: { "cmd": ["c:/Python37/python.exe", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "

使用sublime text 3,键入“for”并点击选项卡时的自动完成功能为您提供:

for x in xrange(1,10):
    pass
但是,这对于Python3来说不是有效的语句。我尝试使用以下方法创建新的构建系统:

{
    "cmd": ["c:/Python37/python.exe", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

自动完成仍然给出错误的语法。有什么建议吗?

简短的版本是,为支持Python而随升华提供的
sublime build
sublime snippet
文件的目标是Python版本2,而不是Python版本3。我不知道这是否仅仅是因为最初使用的东西,或者是故意这样做的

在Sublime中,资源通常基于语法定义提供的
范围
与特定语言相关。例如,Python的示例代码片段与
source.Python
相关联,您的示例构建文件使用该范围来知道它适用于Python文件,等等。因此,无论您使用什么构建,这对提供的代码段都没有影响

例如,如果使用命令调色板中的
查看包文件
命令并输入文本
python for snippet
,包资源列表将过滤到
python/Snippets/for.sublime snippet
;按Enter键查看该资源会显示以下内容:


对于
source.python
For循环
这里的
选项卡trigger
指定代码段插入的方式,
范围
控制插入的位置以及
内容
控制插入的内容。因此,为了将其更改为支持Python3,您需要创建自己的代码段或修改现有的代码段

创建您自己的代码段的一个问题是,它将被添加到代码段列表中,包括有问题的代码段,这使得它可能在您不希望它触发时仍会触发。也没有通用的“简单”方法来禁用单个代码段

因此,通常最好的做法是使用该软件包。安装它,从命令选项板中选择
PackageResourceViewer:Open Resource
,然后选择如上所述的相同文件,修改代码段的内容(例如,将
xrange
替换为
range
)并保存文件


用您编辑的版本替换现有的代码段将变得非常出色,这样它就可以取代现有的代码段,并以您想要的方式工作

谢谢你给了我难以置信的清晰和简洁的解释,我在其他任何地方都找不到,即使是用我的谷歌浏览器。非常感谢!