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を使用して試してみました()の代わりのexecのSO答えるthisに基づいて、私は現在、このコードを持っています。 Start()、しかしそれはどちらもうまくいかないようです(ただし、同じ場所では失敗しません)。
私はVimの代わりにGvimを使用しても動作させることができますが、Vimとnanoの両方で動作することを拒否します。私はVimとnanoが外部ウィンドウを作成するのではなく、ターミナルエミュレータの内部で動いていると考えています。
私は試しましたが、それでも動作しません。また、これは説明をすることはできません。単に "gvim"をうまく使っているからです。 – cgt
がチェックされています。あなたが正しい。理由はまだ分かりません。それを見る。 – zzzz