Sublime text 3 build 3083 运行 变体未自动选择

Sublime text 3 build 3083 Run variant not chosen automatically

我使用 Sublime Text 3 进行 C++ 开发。我刚刚从之前版本的 Sublime Text 3 更新到当前版本(版本 3083)。唯一困扰我的是,每当我尝试 "Run" 一个 C++ 程序时,使用 Command+Shift+B (OS X),而不是 运行ning 构建,它就会出现有一个菜单,我必须从中选择配置,例如

挺烦人的,之前的Sublime 3都没有做到这一点(能够自动select正确配置)。问题不会出现在构建 (Command + B) 上,而只会出现在尝试 运行 使用 Command + Shift +B 构建时。

有谁知道如何解决这个问题?

我也 运行 遇到了这个问题,深入研究 this thread 帮助我弄清楚发生了什么。

Ctrl + B 执行主要构建系统命令和 Ctrl + Shift + B 执行第一个 变体 已更改。现在后者总是显示命令面板以及所有适用的构建系统。一旦您从调色板 select 编辑了您想要 运行 的变体,随后的 Ctrl + B 将重新 运行 相同的变体直到您使用 Ctrl + Shift + B 到 select 另一个变体。

我测试了两种不同的恢复旧行为的方法,都涉及添加自定义键盘绑定

{ "keys": ["ctrl+shift+b"], "command": "build", "args": {"select": false} }

{ "keys": ["ctrl+shift+b"], "command": "build", "args": {"variant": "Run"} }

(在第二种情况下,将 Run 替换为您的变体名称)

链接的线程还说您可以指定 sublime-build 文件的路径

{ "keys": ["ctrl+shift+b"], "command": "build", "args": {"build_system": "Packages/ALanguage/ALanguage.sublime-build", variant": "Run"} }
    {
        "keys": ["super+b"], 
        "command": "build",
        "context": [
            { "key": "selector", "operator": "equal", "operand": "source.c++" }
        ], 
        "args": {
            "build_system": "Packages/C++/C++.sublime-build",
            "variant": "Build"
        }
    },

    {
        "keys": ["super+shift+b"], 
        "command": "build",
        "context": [
            { "key": "selector", "operator": "equal", "operand": "source.c++" }
        ],
        "args": {
            "build_system": "Packages/C++/C++.sublime-build",
            "variant": "Run"
        }
    },

    {
        "keys": ["super+b"], 
        "command": "build",
        "context": [
            { "key": "selector", "operator": "equal", "operand": "source.java" }
        ], 
        "args": {
            "build_system": "Packages/Java/Java.sublime-build",
            "variant": "Build"
        }
    },

    {
        "keys": ["super+shift+b"], 
        "command": "build",
        "context": [
            { "key": "selector", "operator": "equal", "operand": "source.java" }
        ],
        "args": {
            "build_system": "Packages/Java/Java.sublime-build",
            "variant": "Run"
        }
    }

在 Key Bindings-User 中添加这个为我恢复了旧行为。希望这有帮助。

编辑:使用 'context' 我们可以为多种语言构建相同的快捷键,并且键绑定中任何未定义的 build_systems 都将具有键的默认行为。

如果你想编译并且运行你在 sublime text 3 中编程 使用不同的 - 不同的密钥(例如 "f5" 用于编译,"f6" 用于 运行 命令提示符,然后按照我的步骤操作。

1- 在 sublime text 3 中只需单击首选项 > 键绑定。
2- 这里是打开了一个新的 window 在两个设置 1set 默认键绑定在左边。 2set 是用户定义的面板,一个空面板
3- 现在粘贴以下代码。

[
{ "keys": ["f5"], "command": "build", "args": {"variant": ""} },
{ "keys": ["f6"], "command": "build", "args": {"variant": "Run"} },
{ "keys": ["ctrl+shift+b"], "command": "build", "args": {"select":false} }

]

现在您可以使用 "f5" 和 "f6" 编译 运行。 您可以根据需要通过替换密钥来更改密钥。