状态栏中没有显示构建系统(sublime text)

问题描述 投票:0回答:1

我在 Sublime Text 中的构建系统配置遇到问题。这是配置:

json

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "shell": true,
    "working_dir": "${file_path}"
}

我还为此构建系统定义了一个键绑定:

json

{
     "keys": ["ctrl+f5"],
    "command": "build",
    "args": {"variant": "run_python"},
    "selector": "source.python",
    "working_dir": "$file_path"
}

但是,当我保存代码并按 ctrl+f5 时,它会显示一条错误消息:“没有带有变体 run_python 的构建系统”。

有人可以帮我解决这个问题吗?

在 Stack Overflow 上发帖时,请确保在必要时提供其他上下文或相关信息。

python sublimetext3 key-bindings build-system
1个回答
0
投票

发生这种情况的原因是您的按键绑定不正确;部分原因是它包含在键绑定中无效的键(这是无害的,但当您查看它时会让您感到困惑),但主要是因为它与您正在使用的版本不符。

如果我们检查键绑定本身:

{
     "keys": ["ctrl+f5"],
    "command": "build",
    "args": {"variant": "run_python"},
    "selector": "source.python",
    "working_dir": "$file_path"
}

按键

selector
working_dir
在按键绑定中无效;这些东西只存在于
sublime-build
文件中。因此,虽然他们会被忽视,但他们也什么也不做;您应该删除它们,否则当您尝试编辑它们但没有任何反应时,您会感到困惑。

您向

build
命令提供的参数告诉它应该尝试调用名为
run_python
的变体的构建,但您的构建文件中没有任何变体。

你要求它做的是在某个地方找到一些带有

run_python
变体的构建,然后运行该变体。但是,由于没有,该命令不会执行任何操作,并且您会在状态栏中看到一条消息来说明这一点:

使用变体通常是在构建可以执行多项操作并且您想要专门选择其中一项的情况下使用。在你的情况下,你的构建只运行Python。因此,您应该将按键绑定调整为如下所示,但请注意,您将需要根据您的名称调整构建系统的名称

{
    "keys": ["ctrl+f5"],
    "command": "build",
    "args": {
        "build_system": "Packages/User/RunPython.sublime-build",
        "variant": "",
    },
},

这告诉 Sublime 专门使用指定的构建,没有变体。

您还可以删除

variant
参数,因为在这种情况下不需要它,但它可以方便地提醒您,如果您的构建实际上包含变体,您可以输入其名称以使绑定始终执行该特定变体。

另请注意,在您的情况下,您可以在

Automatic
菜单中将构建设置为
Tools > Build System
,然后使用正常的构建命令来执行(请参阅
Tools > Build
中的键绑定),但大概您会更多关于 IDE 的感觉以及用于运行代码的特定组合键。

请注意,以这种方式定义时,您的键绑定将始终尝试执行 Python,即使这对于情况来说不正确。如果您使用多种语言,则可以为该键设置多个键绑定,每个键都有不同的

context
条目,使它们仅在特定文件类型中可用。

如果您想要更直观的运行,我在我的 YouTube 频道上有一个 视频演示了整个过程,还有一个完整的 构建系统播放列表,它提供了有关构建一般如何工作的更多详细信息,包括专门介绍变体以及如何设置它们的视频。

© www.soinside.com 2019 - 2024. All rights reserved.