Go 프로그램 내에서 외부 편집기를 시작하고 사용자가 편집기를 닫은 다음 프로그램 실행을 계속하는 방법을 알아 내려고합니다. 나는이 프로그램을 실행하면Go 프로그램 내에서 외부 편집기 실행 시도
package main
import (
"log"
"os"
"os/exec"
)
func main() {
fpath := os.TempDir() + "/thetemporaryfile.txt"
f, err := os.Create(fpath)
if err != nil {
log.Printf("1")
log.Fatal(err)
}
f.Close()
cmd := exec.Command("vim", fpath)
err = cmd.Start()
if err != nil {
log.Printf("2")
log.Fatal(err)
}
err = cmd.Wait()
if err != nil {
log.Printf("Error while editing. Error: %v\n", err)
} else {
log.Printf("Successfully edited.")
}
}
, 나는이 얻을 :
[email protected]:~/code/go/src/launcheditor$ go run launcheditor.go
2012/08/23 10:50:37 Error while editing. Error: exit status 1
[email protected]:~/code/go/src/launcheditor$
가 나는 또한 exec.Run를 사용하여 시도() 대신 간부의 SO 답변 this을 바탕으로, 나는 현재이 코드가 있습니다. 시작(),하지만 그 중 하나를 작동하지 않는 것 (비록 그것은 같은 장소에서 실패하지 않습니다).
Vim 대신 Gvim을 사용하면 제대로 작동하지만 Vim과 nano 모두에서 작동하지 않습니다. 외부 창을 만드는 대신 Vim과 nano가 터미널 에뮬레이터 내에서 실행되는 것과 관련이 있다고 생각합니다. cmd := exec.Command("vim", fpath)
에서 여기
시도했지만 여전히 작동하지 않습니다. 또한, "gvim"을 잘 사용하면 설명이 될 수 없습니다. – cgt
선택됨. 네가 옳아. 이유를 아직 모릅니다. 그것으로보고. – zzzz