Bir Go programından bir dış düzenleyicinin nasıl başlatılacağını anlamaya çalışıyorum, kullanıcının düzenleyiciyi kapatmasını bekleyin ve ardından programın yürütülmesini sürdürün. Ben Programı çalıştırdığınızdaBir Go programından harici bir düzenleyiciyi başlatmaya çalışıyorum
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.")
}
}
, bu alın:
[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$
Ben de exec.Run kullanarak denedim() yerine exec SO cevap this dayanarak, Şu anda bu kodu var. Başlat(), ancak bu (ya da aynı yerde başarısız olsa da) işe yaramıyor.
Vim yerine Gvim kullanırsam çalışabilirim, ancak hem Vim hem de nano ile çalışmayı reddeder. Bence harici bir pencere oluşturmak yerine terminal emülatörü içinde çalışan Vim ve nano ile ilgili. cmd := exec.Command("vim", fpath)
yılında Burada
Denedim, ancak hala çalışmıyor. Ayrıca, bu sadece "gvim" eserlerinin kullanımıyla ilgili açıklama olamaz. – cgt
İşaretli. Haklısın. Sebebini henüz bilmiyorum. Içine bakmak. – zzzz