【问题标题】:Build and run with arguments in Sublime Text 2在 Sublime Text 2 中使用参数构建和运行
【发布时间】:2013-05-05 15:32:22
【问题描述】:

我在 MacOS X 上运行,并且正在使用 Sublime Text 2 进行编码。

我找到了 command + B 选项来构建和 command + shift + B 构建和运行。

是否可以运行程序(或脚本)并传递参数。示例:

myProg arg1 arg2

注意:我使用多种语言(C++、Java、Python),所以我希望有一种方法可以为每个项目而不是所有构建设置参数。

编辑

我想为程序调用设置参数,有点像在 eclipse 中,您可以在运行程序时设置参数。

【问题讨论】:

    标签: build parameter-passing sublimetext2


    【解决方案1】:

    对于每个项目,您可以创建一个 .sublime-project 文件,其中包含您的特定 build_system

    {
      "folders":
      [{
        "path": "src"
      }],
      "build_systems":
      [{
        "name": "Run with args",
        "cmd": ["python", "$file", "some", "args"]
      }]
    }
    

    这样您就不会污染全局构建系统菜单,也不必担心在切换项目时切换构建系统。当您需要更改参数时,该文件也很容易访问:

    Cmd-Shift-P > Edit Project
    

    【讨论】:

    • 伙计,如果我们每次都需要传递动态参数,那么完成它的最佳方法是什么......?
    • 动态是什么意思?您可以在此处完全访问 shell,您可以将“动态”内容存储在文件中,并在 sublime 构建中静态读取。
    • 例如,您想为下划线运行 nodejs npm 安装程序,那么您将像“npm install underscore”那样编写命令,但是下次您要加载 express 时,您将像“npm install express”那样编写命令”。所以我怀疑我们是否可以通过键盘选择 arg 并使用它来加载节点模块,就像我们在文件中查找文本一样,例如:选择文件中的任何文本,然后按 ctrl+F。您将在查找面板中找到它。
    【解决方案2】:

    InputArgs 完全符合您的要求。 每次你运行 build(ctrl+b) 都会显示一个输入对话框,你可以在 sublime 文本中为它提供空格分隔的参数。

    【讨论】:

    • 当您执行 ctrl+shit+b 并打开对话框时,执行每个人都希望执行的操作。它非常完美,可以处理提供的命令的历史记录(向上推)。非常感谢。
    • 我刚刚在 node.js 构建系统中尝试了这个,如果我传递了一系列由空格分隔的参数,我会将它们作为一个大参数:即。如果我想模拟node program.js 1 2 3,当我在对话框中输入1 2 3 时得到的是单个字符串1 2 3,而不是3 个单独的字符串参数。
    【解决方案3】:

    我发现一个简单的解决方案是在同一目录中创建一个 python 文件:

    import os
    os.system("python filename.py some args")
    

    【讨论】:

    • 这将是我的后备选项(并不总是在 sublime 下),但需要进行一些调整,例如检查 os.argv 并且可能使用 raw_input 请求许多 args,然后使用 os.execv() 启动而是 os.system().
    • 这是运行带有参数的 python 脚本的简单而复杂的方法。这个建议对我很有帮助,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多