Interactive shell for Golang¶
Golang用の対話形式シェル Gosh を作りましたよ、というお話です。
Golangでコードを書き始めた今年の年初くらいから、iPythonのような対話形式のシェルがほしいなと思っていました。気になるライブラリをちょっと試してみたいときに、 go get
して、Emacsでコード書いて、 go run
を実行する、というのは億劫で、 import
したらそのまま go get
して実行できれば良いな、と思っていました。
そういったツールが無いかと調べて、go-eval や igo や Go playground 1 にはたどり着いたのですが、パッケージをインポートする機能がないので自分の欲しい機能とは違う、ということでエイヤっと作ってみました。
特徴¶
現在の特徴としては次のとおりです。
Go 1.2 以上対応
対話形式のシェル
package main
の入力省略可 2標準ライブラリの
import
省略可標準ライブラリ以外のライブラリの
import
可 3import
文の重複入力を無視import
しても未使用のパッケージを無視Ctrl + d
で終了
やっていることとしては、単に入力したコードからを、一時ファイル作って go run
を実行するだけの簡単な内容です。
インストール方法や使い方は、 README を読んでください。
今後¶
main()
を入力しないと実行できないので省略できるようにするタブ補完
DebianパッケージなどでシステムグローバルにインストールしたGolangライブラリなどの
import
を省略できるようにする
などを考えています。良かったら使ってみて下さい。
Footnotes