開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Go (プログラミング言語)
むしろ sl のような typo 矯正系ジョークプログラムを……何かネタないかな。
— yoh2 (@yoh2_sdj) August 24, 2019
そういえばGo言語で外部プログラムを起動するプログラムを書いたことないし、せっかくだから調べたついでに簡単なコードを書いてみた。ジョークは思いつかない、というか考えてないからemacsとtypoしたらvimが起動するプログラムの方を検討。ただ、普段使ってるのはEmacsということで、vimとtypoとしたらemacsを起動するプログラム。emacsとtypoしたらvimが起動して怒られるプログラムをお願いします(いろんな人に怒られる)
— ヤン (@yangniao23) August 24, 2019
自分はsudo を suod と誤タイプする事が少しありますけど内容ガガガが
コード
package main
import (
"log"
"os/exec"
"runtime"
)
func main() {
var cmdPointer *exec.Cmd
switch runtime.GOOS {
case "windows":
cmdPointer = exec.Command("cmd", "/c",
`C:\msys64\mingw64\bin\emacs.exe`)
case "darwin":
cmdPointer = exec.Command("open", "-a", "emacs")
default:
cmdPointer = exec.Command("emacs")
}
err := cmdPointer.Start()
if err != nil {
log.Fatal(err)
}
}
入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal)
$ go build vim.go $ ./vim $ GOOS='windows' go build vim.go $
WindowsはMSYS2でインストールしたEmacs。だから、環境や設定によってemacs.exeが場所が違うかも。
あと、実際に動作確認したOSはmacOS、Windowsのみ。一応、他のOS向けにswitch文のdefaultで設定しておいたけど、動くかどうかわ未確認。
当然、環境変数のPATHにビルドしたプログラムを置くと本当のvimが上書きされたり使えなくなってしまうから注意。
runtime.GOOSについては改訂2版 みんなのGo言語の第2章を参考にした。
1 コメント :
紹介してくださりありがとうございます!
コメントを投稿