【问题标题】:Multiline command.go in SciTESciTE 中的多行 command.go
【发布时间】:2011-05-29 02:04:25
【问题描述】:

短片

这涉及 SciTE 和 Windows 中的 go 语言(特别是 Windows 7)。这是我第一次使用 SciTE,所以如果有其他方法可以实现我的目标也很好。

目标:一键编译、链接、执行新创建的二进制文件。

长篇

我想在 SciTE 的“go”命令下设置编译/链接/执行。这可能有点令人困惑,因为它也适用于 go language。这是我目前所拥有的:

command.compile.*.go=8g $(FileNameExt)
command.build.*.go=8l -o $(FileName).exe $(FileName).8
command.go.*.go=$(FileName).exe

我想要的是:

command.go.*.go=\
8g $(FileNamExt)\
8l -o $(FileName).exe $(FileName).8\
$(FileName).exe

如果这按我的预期工作,它将编译文件、链接它,然后运行可执行文件。会发生什么:

8g hello.go8l -o hello.exe hello.8hello.exe

什么时候应该:

8g hello.go
8l -o hello.exe hello.8
hello.exe

每行的执行位置。

【问题讨论】:

    标签: editor go configure scite


    【解决方案1】:

    像这样写一个批处理脚本:

    @echo off
    if (%1 == "") (goto end)
    
    set gofile=%1%
    shift
    
    8g %gofile%.go
    8l -o %gofile%.exe %gofile%.8
    %gofile%.exe
    
    :end
    

    批处理文件可以在任何地方,但假设它在 'C:\one\two\three\GO.bat' 中,没有引号。在 SciTE 属性文件中更改:

    command.go.*.go=$(FileName).exe
    

    command.go.*.go=C:\one\two\three\GO.bat $(FileName)
    

    当你按 F5 或点击“Go”时,它会编译、链接和执行文件。

    【讨论】:

      【解决方案2】:

      你有没有空格的续行转义,这就是它看起来像这样的原因。

      我不了解 Windows,但在 unix shell 中,您可以使用分号分隔多个命令(或 peterSO 提到的 &&,这里更合适)。

      您仍然可以换行,但要意识到它不会考虑换行在语法上的重要性,因此请酌情添加分隔符。

      【讨论】:

      • 在 Windows 中,我发现与分号等效的是双与号。然而,SciTE 似乎并不好用。因此,虽然 '8g %gofile%.go && 8l -o %gofile%.exe %gofile%.8 && %gofile%.exe' 没有引号在批处理文件或命令行中有效,但在 SciTE 中却不是这样。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-19
      相关资源
      最近更新 更多