我有一个用Golang编写的命令行工具,需要从中启动vim编辑器。然而,它并没有起作用,也没有任何错误或其他可用的信息。我已经将代码简化为以下内容:
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("vim", "test.txt")
err := cmd.Run()
fmt.Println(err)
}
当我运行这个程序时,我可以看到vim进程持续了2-3秒,但应用程序实际上并没有打开。然后该程序会简单地退出(vim进程关闭),并显示“退出状态1”。 我还尝试捕获标准错误输出:
package main
import (
"bytes"
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("vim", "test.txt")
var stderr bytes.Buffer
cmd.Stderr = &stderr
err := cmd.Run()
fmt.Println(err)
fmt.Println(stderr)
}
但是在这种情况下,程序会无限期地被卡住。
你有什么想法是什么问题?