我尝试vim在 go 程序中调用,其代码类似于:package mainimport ( "fmt" "os" "os/exec")func main() { err := exec.Command("vim", "a.txt").Run() if err != nil { fmt.Println(err) } os.Exit(0)}我跑go run mycode.go然后得到:exit status 1我尝试了几种方法来成功,例如替换Run()为Start(), Output(), ...,但似乎不起作用。最后,我尝试做的是尝试调用vim并停止我当前的 go 程序。我只想看到vim出现,仅此而已。
1 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
为了让 vim 呈现其界面,您需要将标准输入/输出流附加到进程中:
package main
import (
"fmt"
"os"
"os/exec"
)
func main() {
cmd := exec.Command("vim", "a.txt")
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Run()
if err != nil {
fmt.Println(err)
}
os.Exit(0)
}
不附加流类似于从 shell 运行以下命令:
vim < /dev/null > /dev/null 2> /dev/null
- 1 回答
- 0 关注
- 125 浏览
添加回答
举报
0/150
提交
取消