【问题标题】:Sublime text 3 build 3083 Run variant not chosen automaticallySublime text 3 build 3083 运行变体未自动选择
【发布时间】:2015-03-26 22:09:49
【问题描述】:

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

  • C++ 单个文件
  • C++ 单个文件 - 运行
  • 我的自定义 C++
  • 我的自定义 C++ - 运行

相当烦人,之前的 Sublime 3 并没有这样做(它能够自动选择正确的配置)。该问题不会出现在构建(Command + B)上,而只会出现在尝试使用 Command + Shift +B 运行构建时。

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

【问题讨论】:

    标签: c++ sublimetext3


    【解决方案1】:

    我也遇到了这个问题,通过 this thread 挖掘帮助我弄清楚了发生了什么。

    Ctrl + B 执行主要构建系统命令和 Ctrl + Shift + B 执行第一个 variant 的旧行为已更改.现在后者总是显示所有适用的构建系统的命令面板。一旦您从调色板中选择了要运行的变体,随后的 Ctrl + B 将重新运行相同的变体,直到您使用 Ctrl + Shift + B 来选择另一个变种。

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

    { "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"} }
    

    【讨论】:

    • 这个解决方案的问题是ctrl + b 将运行使用ctrl + shift +b 选择的变体。或者至少这就是发生在我身上的事情。我必须强制选择构建系统。这当然是developer 提出的预期工作流程,但在这方面你不能有旧的行为是很痛苦的。最好让 ctrl + shift + b 运行上次使用的构建系统的“运行”变体。
    • @Rapptz 在这里相同,仍然比默认值好得多。我讨厌 3083带来的修改,不知喜不喜欢...
    • @vsoftco 我实际上决定尝试并坚持新行为,希望我能习惯它,但还没有发生 :) 还没有机会测试@ Rapptz 在他的评论中说,但看起来其他答案的解决方案也将 Ctrl+B 恢复为以前的行为。
    • @vsoftco 我已经习惯了,但很遗憾。我的新工作流程只是执行ctrl + shift + b 运行然后切换回编译。如果我够绝望的话,你可能有一个简单的插件来完成“运行”方面的工作。
    • @Rapptz 是的,确切地说,这是一种耻辱(当然,我们的意见可能有偏见,但总的来说我很欣赏质量,这似乎是一种下降)。让我抓狂的是烦人的菜单弹出到屏幕上(默认行为),我必须手动选择一些东西。
    【解决方案2】:
        {
            "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 中添加它为我恢复了旧行为。希望这会有所帮助。

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

    【讨论】:

    • 太好了,它可以工作(在某种意义上),非常感谢!唯一的问题是,当您选择其他构建系统时,键绑定到 C++ 编译命令。
    • 是的,这是个问题。我想一个插件应该可以完成这项工作。如果我能够恢复旧行为,我会在此处发布链接。
    • @vsoftco :查看已编辑的 asnwer,这应该完全符合您的要求。让我知道它是如何工作的:)
    【解决方案3】:

    如果你想在 sublime text 3 中编译和运行你的程序 使用不同的 - 不同的键(如“f5”用于编译和“f6”用于运行 命令提示符然后按照我的步骤操作。

    1- 在 sublime text 3 中只需单击首选项 > 键绑定。
    2-这里是在左侧默认键绑定的两组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”编译运行。 您可以通过替换键来随意更改键。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 2014-12-06
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-04
      相关资源
      最近更新 更多