使用LiteIDE讓Go語言編程變得更加簡單。LiteIDE會預(yù)先為你在工程目錄下創(chuàng)建main.go和doc.go文件。
如何支持低版本Go1.1和Go1.2
LiteIDE的編譯設(shè)置使用了-i編譯參數(shù)。如果使用Go1.1或Go1.2則不支持此參數(shù)。選項(xiàng)->查看->LiteBuild 雙擊gosrc.xml進(jìn)行編輯。修改BUILDARGS默認(rèn)設(shè)置:
<custom id="BuildArgsi" name="BUILDARGS" value="-i"/>
將value設(shè)置為空存盤重啟LiteIDE即可支持Go1.1和Go1.2。
窗口樣式設(shè)置
LiteIDE目前有兩種窗口樣式分離式和側(cè)邊欄式。
選項(xiàng)->查看->LiteApp-> 窗口樣式。
環(huán)境設(shè)置
LiteIDE環(huán)境設(shè)置插件可以讓你快速設(shè)置切換多個(gè)系統(tǒng)環(huán)境,以便編譯構(gòu)建,每個(gè)環(huán)境都可配置自己需要的環(huán)境變量。
選擇當(dāng)前環(huán)境
工具欄中的下拉菜單可以用來選擇目前用于編譯構(gòu)建/運(yùn)行的環(huán)境。
主要系統(tǒng)的一些常用環(huán)境列表
Windows - win64 win32
Linux - linux64 linux32
MacOSX - darwin64 darwin32
可選擇使用交叉編譯環(huán)境,請參看下面的交叉編譯設(shè)置。
配置環(huán)境
環(huán)境中的變量可以通過手工進(jìn)行修改。要編輯當(dāng)前環(huán)境,只要按一下環(huán)境下拉列表旁的編輯環(huán)境按鈕。
另外,也可以查看>選項(xiàng)> LiteEnv面板中對所有環(huán)境進(jìn)行查看和編輯。
舉例 win32.env:
#win32 environment GOROOT=c:\go #GOBIN= GOARCH=386 GOOS=windows PATH=c:\mingw32\bin;%GOROOT%\bin;%PATH% LITEIDE_GDB=gdb LITEIDE_MAKE=mingw32-make LITEIDE_TERM=%COMSPEC% LITEIDE_TERMARGS= LITEIDE_EXEC=%COMSPEC% LITEIDE_EXECOPT=/C
舉例 linux32.env:
#linux32 environment GOROOT=$HOME/go #GOBIN= GOARCH=386 GOOS=linux PATH=$GOROOT/bin:$PATH LITEIDE_GDB=gdb LITEIDE_MAKE=make LITEIDE_TERM=/usr/bin/gnome-terminal LITEIDE_TERMARGS= LITEIDE_EXEC=/usr/bin/xterm LITEIDE_EXECOPT=-e
快速打開窗口
快速打開 Ctrl+P
快速打開文檔 Ctrl+Alt+P 或者在快速打開窗口輸入 ~
快速跳轉(zhuǎn)符號 Ctrl+Shift+O 或者在快速打開窗口輸入 @
快速跳轉(zhuǎn)到行 Ctrl+L 或者在快速打開窗口輸入 :
獲取幫助 在快速打開窗口輸入 ?
交叉編譯 (Go1.5或更高版本)
選擇LiteIDE的環(huán)境并設(shè)置相應(yīng)的GOROOT、GOARCH、GOOS,重新編譯即可。
交叉編譯 (Go1.5之前)
必須先建立交叉編譯器所需要的平臺和架構(gòu)。如果你不這樣做,將出現(xiàn)類似下面的錯(cuò)誤:
go build runtime: linux/amd64 must be bootstrapped using make.bat
請查看 "Building compilers" subsection for examples.
環(huán)境變量
交叉編譯將把項(xiàng)目為編譯為另一個(gè)操作系統(tǒng)或體系結(jié)構(gòu),需要定義環(huán)境中的以下變量:
$GOOS - 目標(biāo)操作系統(tǒng) (默認(rèn)值等同于$GOHOSTOS). 可選值包括:
darwin (Mac OS X 10.6 或更高版本)
freebsd
linux
netbsd
openbsd
plan9
windows
$GOARCH - 目標(biāo)平臺體系 (默認(rèn)值等同于$GOHOSTARCH). 可選值包括:
amd64 (64-bit x86, 最成熟)
386 (32-bit x86)
arm (32-bit ARM)
$GOARM - ARM 架構(gòu)運(yùn)行庫 (默認(rèn)值: 6).
設(shè)置 $GOARM 為5 時(shí)將導(dǎo)致鏈接器使用軟件浮點(diǎn)實(shí)現(xiàn),而不是使用硬件浮點(diǎn)支持。
$CGO_ENABLED
交叉編輯時(shí)值自動(dòng)設(shè)置為0。
構(gòu)建編譯器
要構(gòu)建編譯器到交叉編譯,需要轉(zhuǎn)到源目錄中并運(yùn)行相應(yīng)的腳本。下面的例子演示了如何構(gòu)建一些常見的編譯器,你必須自己機(jī)器上相應(yīng)設(shè)置來修改環(huán)境變量。
go1.5 以下 ( go1.8 交叉編譯時(shí)會自動(dòng)設(shè)置 CGO_ENABLED 為 0)
在Windows平臺上交叉編譯 64-bit Linux (使用MinGW和GCC):
> set GOARCH=amd64 > set GOOS=linux > set CGO_ENABLED=0 > go build std
在Mac OS X平臺上交叉編譯 32-bit windows:
> GOARCH=386 GOOS=window CGO_ENABLED=0 go build std
在Mac OS X平臺上交叉編譯 ARM :
> GOARCH=arm GOOS=linux CGO_ENABLED=0 go build std
go 1.0 go1.1 go1.2 go1.3 go1.4
在Windows平臺上交叉編譯 64-bit Linux (使用MinGW和GCC):
> set GOARCH=amd64 > set GOOS=linux > set CGO_ENABLED=0 > cd %GOROOT%\src > all.bat
在macOS平臺上交叉編譯 32-bit windows:
> export GOARCH=386 > export GOOS=windows > export CGO_ENABLED=0 > cd $GOROOT/src > ./all.bash
在macOS平臺上交叉編譯 ARM :
> export GOARCH=arm > export GOOS=linux > export CGO_ENABLED=0 > cd $GOROOT/src > ./all.bash
Go語言代碼格式化
存盤時(shí)自動(dòng)格式化
Goimports樣式格式化
LiteIDE 查看->選項(xiàng)->GolangFmt-> 使用Goimports代替gofmt進(jìn)行代碼格式化
這個(gè)工具自動(dòng)更新您的Go語言import行,增加缺少的pkg和移除未引用的pkg。
Gocode代碼完成
Go語言代碼完成使用gocode https://github.com/nsf/gocode,gocode的工作原理是從項(xiàng)目的依賴庫.a文件中讀取,所以不能代碼完成時(shí)請更新項(xiàng)目的依賴庫。
更新依賴庫
更新當(dāng)前項(xiàng)目的依賴庫, 點(diǎn)擊編譯菜單或工具欄Get(go get)
自動(dòng)更新依賴庫
LiteIDE 查看->選項(xiàng)->Gocode-> 自動(dòng)更新依賴庫
編譯
在LiteIDE中執(zhí)行交叉編譯,通過選擇上述相應(yīng)的交叉編譯環(huán)境。并且確保環(huán)境已經(jīng)設(shè)置了正確的變量。包括 GOARCH,GOOS,GOARM和CGO_ENABLED,如上面所述。
一旦交叉目標(biāo)環(huán)境中已被選中并切換,只需要重新編譯文件/項(xiàng)目即可。
舉例在Windows平臺上配置交叉環(huán)境 64-bit Linux:
GOROOT=c:\go GOBIN= GOARCH=amd64 GOOS=linux CGO_ENABLED=0 PATH=%GOBIN%;%GOROOT%\bin;%PATH% ...
編譯系統(tǒng)
LiteIDE的編譯系統(tǒng)是高度可配置的,可使用XML文件自定義生成相應(yīng)的命令操作。
配置編譯行為
要修改現(xiàn)有的編譯選項(xiàng),打開查看>選項(xiàng)> LiteBuild。你可以在這個(gè)目錄中添加自己的圖片來定義新的圖標(biāo)。雙擊一個(gè)XML文件進(jìn)行編輯。每個(gè)XML文件都使用Mime格式定義了針對特定文件類型的相應(yīng)操作。
舉例 Go語言的 XML 配置 (gosrc.xml):
<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'> <mime-type type="text/x-gosrc" id="gosrc" work="$(EDITOR_DIR)" ver="1"> <config id="Go" name="GO" value="go"/> <config id="GoExec" name="GOEXEC" value="$(LITEAPPDIR)/goexec"/> <config id="ErrRegex" name="ERRREGEX" value="(\w?:?[\w\d_\-\\/\.]+):(\d+):"/> <custom id="TargetArgs" name="TARGETARGS" value=""/> <custom id="BuildArgs" name="BUILDARGS" value=""/> <custom id="InstallArgs" name="INSTALLARGS" value=""/> <action id="Build" img="blue/build.png" key="Ctrl+B;F7" cmd="$(GO)" args="build $(BUILDARGS)" save="all" output="true" codec="" regex="$(ERRREGEX)" navigate="true"/> <action id="Install" menu="Build" img="blue/install.png" key="Ctrl+F8" cmd="$(GO)" args="install $(INSTALLARGS)" save="all" output="true" regex="$(ERRREGEX)" navigate="true"/> <action id="BuildTests" menu="Build" img="blue/buildtest.png" cmd="$(GO)" args="test -c -gcflags "-N -l"" save="all" output="true" codec="" regex="$(ERRREGEX)"/> <action id="Clean" menu="Build" img="blue/clean.png" cmd="$(GO)" args="clean" save="all" output="true"/> <action id="CleanAll" menu="Build" img="blue/cleanall.png" cmd="$(GO)" args="clean -i" save="all" output="true"/> <action id="BuildAndRun" img="blue/buildrun.png" key="Ctrl+R;Ctrl+F7" task="Build;Run" killold="true"/> <action id="Run" menu="BuildAndRun" img="blue/run.png" key="Ctrl+F5" cmd="$(EDITOR_DIRNAME_GO)" args="$(TARGETARGS)" output="true" codec="utf-8" readline="true"/> <action id="RunTerm" menu="BuildAndRun" img="blue/runterm.png" key="Ctrl+Shift+F5" cmd="$(LITEIDE_EXEC)" args="$(LITEIDE_EXECOPT) $(GOEXEC) $(EDITOR_DIRNAME_GO) $(TARGETARGS)" output="false" readline="true"/> <action id="FileRun" menu="BuildAndRun" img="gray/filerun.png" key="Alt+F6" cmd="$(GO)" args="run $(EDITOR_NAME)" save="editor" output="true" codec="utf-8" readline="true"/> <action id="Test" img="blue/test.png" key = "Ctrl+T" cmd="$(GO)" args="test" save="all" output="true" codec="utf-8" regex="$(ERRREGEX)" navigate="true"/> <action id="Bench" menu="Test" img="blue/testbench.png" cmd="$(GO)" args="test -test.bench=.*" save="all" output="true" codec="utf-8" regex="$(ERRREGEX)" navigate="true"/> <action id="Get" menu="Test" img="blue/get.png" cmd="$(GO)" args="get -v ." save="all" output="true" codec="utf-8"/> <action id="Fmt" menu="Test" img="blue/fmt.png" cmd="$(GO)" args="fmt" save="all" output="true" regex="$(ERRREGEX)" navigate="true"/> <action id="Vet" menu="Test" img="blue/vet.png" cmd="$(GO)" args="vet" save="all" output="true" regex="$(ERRREGEX)" navigate="true"/> <target id="Target" cmd="$(EDITOR_DIRNAME_GO)" args="$(TARGETARGS)" work="$(EDITOR_DIR)"/> </mime-type> </mime-info>
Go文檔查看
LiteIDE可使用godoc來輸出需要Go文檔并瀏覽。可以查看標(biāo)準(zhǔn)包文檔或自定義包文檔。打開使用查看> Godoc文檔查看可以查看關(guān)于此的更多細(xì)節(jié)。
查找和替換
編輯器提供了搜索和替換功能,并支持正則表達(dá)式。例如:
Find: (Colo)(u)(r) Replace: \1\3
The above example will replace all instances of Colour with Color. 上面的例子將取代Colour為Color
文件系統(tǒng)的搜索功能可通過 查找 -> 文件搜索實(shí)現(xiàn).
調(diào)試
LiteIDE調(diào)試Go語言需要安裝GDB(Windows上可使用MinGW).
環(huán)境變量LITEIDE_GDB可指定使用哪一個(gè)gdb來執(zhí)行調(diào)試。在Windows平臺上,32位環(huán)境使用gdb.exe而64位環(huán)境默認(rèn)使用gdb64.exe。在環(huán)境配置文件中可對這個(gè)環(huán)境變量進(jìn)行手工配置。
鍵盤映射
您可以修改用于LiteIDE所有的功能快捷鍵。打開 查看 -> 選項(xiàng) -> LiteApp -> 鍵盤 并修改快捷鍵。雙擊該快捷鍵列表進(jìn)行編輯,然后按'應(yīng)用'以執(zhí)行更改。
快捷鍵必須遵循特定的格式?旖萱I通常可以使用逗號(,)分隔,即按順序按下對應(yīng)的快捷鍵以啟動(dòng)功能。而定義支持多個(gè)快捷鍵則用分號(';')進(jìn)行分隔。
舉例:
Ctrl+B
Ctrl+Shift+B
Ctrl+K,Ctrl+U
Ctrl+Y;Ctrl+Shift+Z