用於golang的類python shell環境
gop (go REPL)--http://github.com/simplejia/gop
實現初衷
- 有時想快速驗證go某個函式的使用,臨時寫個程式太低效,有了gop,立馬開一個shell環境,邊寫邊執行,自動為你儲存上下文,還可隨時匯入匯出snippet,另外還有程式碼自動補全等等特性
特性
- history record(gop啟動後會在home目錄下生成.gop資料夾, 輸入歷史會記錄在此)
- tab complete,可以補全package,補全庫函式,需要系統安裝有gocode, 如果之前就安裝過gocode,如果發現不能自動補全,請執行
go get -u github.com/nsf/gocode
升級重新安裝下 - 程式碼實時檢視和編輯功能[!命令功能]
- snippet,可以匯入和匯出模板[<,>命令功能]
安裝
go get -u github.com/simplejia/gop
注意:
- 輸入程式碼時,支援續行
-
對於如下程式碼,只會在執行結束後一併輸出
print(1);time.Sleep(time.Second);print(2)
- 可以通過echo 123這種方式輸出, echo是println的簡寫,你甚至可以重新定義println變數來使用自己的列印方法,比如像我這樣定義(utils.IprintD的特點是可以列印出指標指向的實際內容,就算是巢狀的指標也可以,fmt.Printf做不到):
import "github.com/simplejia/utils" var println = utils.IprintD
- 匯入專案package時,最好提前通過go install方式安裝包檔案到pkg目錄,這樣可以加快執行速度
- 可以提前import包,後續使用時再自動引入
- gop啟動後會自動匯入$PWD/gop.tmpl或者$HOME/.gop/gop.tmpl模板程式碼,可以把常用的程式碼儲存到gop.tmpl裡
demo
$ gop
Welcome to the Go Partner! [[version: 1.7, created by simplejia]
Enter '?' for a list of commands.
GOP$ ?
Commands:
?|help help menu
-[dpc][#],[#]-[#],... pop last/specific (declaration|package|code)
![!] inspect source [with linenum]
<tmpl source tmpl
>tmpl write tmpl
[#](...) add def or code
reset reset
list tmpl list
arg set or get command-line argument
GOP$ for i:=1; i<3; i++ {
..... print(i)
..... time.Sleep(time.Millisecond)
.....}
1
2
GOP$ import _ "github.com/simplejia/wsp/demo/mysql"
GOP$ import _ "github.com/simplejia/wsp/demo/redis"
GOP$ import _ "github.com/simplejia/wsp/demo/conf"
GOP$ import "github.com/simplejia/lc"
GOP$ import "github.com/simplejia/wsp/demo/service"
GOP$ lc.Init(1024)
GOP$ demoService := service.NewDemo()
GOP$ demoService.Set("123", "456")
GOP$ time.Sleep(time.Millisecond)
GOP$ echo demoService.Get("123")
456
GOP$ >gop
GOP$ <gop
GOP$ !
package main
p0: import _ "github.com/simplejia/wsp/demo/mysql"
p1: import _ "github.com/simplejia/wsp/demo/redis"
p2: import _ "github.com/simplejia/wsp/demo/conf"
p3: import "github.com/simplejia/lc"
p4: import "github.com/simplejia/wsp/demo/service"
p5: import "fmt" // imported and not used
p6: import "strconv" // imported and not used
p7: import "strings" // imported and not used
p8: import "time" // imported and not used
p9: import "encoding/json" // imported and not used
p10: import "bytes" // imported and not used
func main() {
c0: lc.Init(1024)
c1: demoService := service.NewDemo()
c2: _ = demoService
c3: demoService.Set("123", "456")
c4: time.Sleep(time.Millisecond)
}
GOP$
相關文章
- 關於aix, linux下的shell環境AILinux
- Linux的shell環境Linux
- golang環境搭建macGolangMac
- golang環境安裝Golang
- GOLANG環境設定Golang
- 用Vagrant構建統一的golang開發環境Golang開發環境
- 資料庫環境中的shell指令碼應用資料庫指令碼
- 環境變數{Linux環境(也稱為Shell環境)}(轉)變數Linux
- golang-wasm 環境搭建GolangASM
- Centos下搭建golang環境CentOSGolang
- ubuntu下golang環境配置UbuntuGolang
- 升級Shell工作環境
- Shell配置環境變數變數
- 基於GitLab CI搭建Golang自動構建環境GitlabGolang
- impala-shell指令碼python環境缺少依賴包指令碼Python
- 設定linux/unix的shell環境Linux
- golang 入門之環境搭建Golang
- GOLang開發環境搭建(Windows)Golang開發環境Windows
- golang 開發環境問題Golang開發環境
- Golang GRPC 環境 問題GolangRPC
- 每日同步環境SHELL指令碼指令碼
- AIX Shell環境設定(轉)AI
- Shell入門:掌握Linux,OS X,Unix的Shell環境Linux
- FreeRtos於嵌入式環境的應用
- 基於Python+Robot框架TA環境的搭建Python框架
- 結合 Shell 對 Koa 應用執行環境檢查
- 用Docker打包Python執行環境DockerPython
- 編譯環境 Golang開發環境 vscode+git編譯Golang開發環境VSCodeGit
- linux登入bash shell環境執行環境變數Linux變數
- 掌握Linux,OS X,Unix的Shell環境Linux
- shell指令碼的執行環境變數指令碼變數
- awk中使用shell的環境變數(轉)變數
- visual studio golang環境配置Golang
- 再論 golang 環境配置建議Golang
- Python環境Python
- Python 程式設計師的 Golang 學習指南(II): 開發環境搭建Python程式設計師Golang開發環境
- 6款實用的Python程式設計環境!Python程式設計
- Windows 環境下 Python 環境安裝WindowsPython