在Sublime Text 3中运行Golang项目

4

我无法找到一个适合我的需求的解决方案,可以在Sublime Text 3中运行Go项目并实时查看输出。

如果我尝试使用以下构建系统:

  1. GoSublime - 我可以使用run,它甚至可以运行和停止,但是没有输出,而我需要输出。仅当我取消构建时才会出现。

  2. 来自Go开发人员的官方Golang Build - 我可以构建该项目,那就是它所能做的。它只允许运行一个文件(当前文件),但我需要整个项目。

    我尝试使用run命令的标志,并添加*.go,但然后我会得到*.go:没有那个文件或目录

如何在这些解决方案中的一个中实时查看输出?我尝试创建了自己的构建系统,其中shell_cmd= go run *.go,但是用取消构建停止进程不起作用。也许您可以解释一下如何停止正在运行的Go程序?我的mybuild.sublime-build类似于此:

{
    "env": {
        "GOROOT": "/path/gosrc/go",
        "GOPATH": "/path/godev"
    },
    "path": "$PATH:/path/gosrc/go/bin",
    "working_dir": "/path/godev/src/github.com/user/program",
    "cmd": "go run *.go",
    "shell": true
}

我可以运行构建并查看所需的输出,但是如何停止正在运行的进程?

附言:程序不仅仅是执行和退出 - 它是一个服务,因此当需要执行操作时,我应该看到输出。

2个回答

1
我个人使用GoSublime和 go build .,其次再用程序名称运行作为第二个命令。显然这种方式在很多方面都很糟糕,但在大多数情况下有点用。它提供了一种快速检查编译错误的好方法,这是我需要的大部分内容。
老实说,只在专用Shell中运行就更好了。
据我所知,对于Sublime Text没有更好的Go构建系统可用(这并不是认可,它很烂,只是比大多数东西要好些)。

“按名称运行应用程序作为第二个命令”是什么意思?请提供完整的配置/命令示例。 - Alexey
没有任何东西可以显示,GoSublime添加了一个shell代理,您可以在其中运行任何命令。按下ctrl+b(构建)只会将此shell带上,最后一个命令已经输入。因此,您可以运行go build .来构建当前包,然后通过键入其名称来运行刚刚构建的二进制文件。坦白地说,您可能只应该在此shell中进行构建,并在其他地方运行。 - Milo Christiansen
如果你的意思是按下 Ctrl+B 并输入 ./program - 程序会运行,但对我来说仍然没有输出。 - Alexey

0

我找到了一个教程,可以在内置 Sublime Text 3 中运行 Go 文件,链接在这里:https://www.alexedwards.net/blog/streamline-your-sublime-text-and-go-workflow

如果你使用 Build With: Go - Run,你将得到输出结果,但是如果你在 Go 中运行例如 net/http 本地主机,则无法同时运行多个程序,并且取消构建也不起作用。

这里有一个在 Sublime Text 3 中输出简单 fmt.Println 的示例:

> Environment:
>   GOPATH=C:/Users/Christiaan/go
> Directory: C:\Users\Christiaan\Documents\02_Personal\04_Learning\09_Go\01_test
> Command: C:\Users\Christiaan\go\go1.15rc1\bin\go.exe run -v C:\Users\Christiaan\Documents\02_Personal\04_Learning\09_Go\01_test\test2.go
> Output:
command-line-arguments
gas_pedal: 22314 brake_pedal: 0 steering_wheel: 12562
> Elapsed: 3.856s
> Result: Success

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接