图片高亮处理编程_GMT语法高亮-智能提示-代码补全插件
GMT的工作方式
GMT其實是由一系列的命令行程序組成的,每一個模塊(比如 pscoast)就是一個單獨的程序。而要完成一張圖的繪制,直接在終端一個一個敲命令肯定不現實,效率太低。一般可取的處理方式就是將一系列命令寫在一個腳本文件中:windows系統中就是大家熟悉的批處理文件,通常以 .bat 為后綴名;而Mac系統和Linux系統中是bash腳本文件,通常以 .sh 為后綴名。 這樣用腳本文件的方式處理,對代碼的二次利用有很大的益處。比如下面這樣一段GMT的命令,
gmt begin ex22gmt set FONT_ANNOT_PRIMARY 10p FONT_TITLE 18p FORMAT_GEO_MAP ddd:mm:ssFfile=`gmt which @usgs_quakes_22.txt -G`n=`gmt info $file -h1 -Fi -o2`first=`gmt info -h1 -f0T -i0 $file -C --TIME_UNIT=d -I1 -o0 --FORMAT_CLOCK_OUT=-`last=`gmt info -h1 -f0T -i0 $file -C --TIME_UNIT=d -I1 -o1 --FORMAT_CLOCK_OUT=-`me="GMT guru @@ GMTbox"gmt makecpt -Cred,green,blue -T0,100,300,10000 -Ngmt coast -Rg -JK180/9i -B45g30 -B+t"World-wide earthquake activity" -Gburlywood -Slightblue -A1000 -Y2.75igmt plot -C -Sci -Wfaint -hi1 -i2,1,3,4+s0.015 $filegmt legend -DJBC+o0/0.4i+w7i/1.7i -F+p+glightyellow neis.legend gmt end show可以繪制一張如下圖所示的全球的地震分布的圖,還是非常美觀的。這個例子來源于GMT的官方例子:example-22 .
這個例子是最新版的gmt的語法,使用了所謂的modern模式,比之前的版本在使用上精簡了很多,功能也更強大了。
GMT腳本編輯器 : VScode
既然我們要用腳本文件的方式來編輯和運行GMT命令集,那么準備一個強大且美觀的代碼編輯器是必須的,工欲善其事必先利其器嘛!這種神器有沒有呢,答案是肯定的,而且還不止一種選擇,比如常用的 VScode, sublime, atom ,這三款都是跨平臺的,而且其用戶也都非常多,都有自己的一部分鐵粉。當然了,很多大神看到了可能就不服氣了,說為啥不提我 vim ,這個是很強大,但是本人就是不喜歡用。除此之外還有windows下的 notePad++ ,這個似乎沒有Mac版本。當年還在用win系統的時候,用過一段時間,還湊合,不過放棄它已經很久了。
工具這么多,蘿卜青菜各有所愛,本人最喜歡VScode。這是個跨平臺的,也就是你所有的使用習慣和軟件配置以及插件,換了系統照樣使用,完全不影響。VScode的用戶社區越來越龐大,很多大神們也貢獻了各種各樣的插件,使得VScode相當的好用!雖然像C++, python, java script這樣的編程語言已經有了太多太多好用的插件,但是GMT至今還沒有人貢獻GMT的插件(包括代碼高亮)。雖然GMT算不上編程語言,但是其命令之多參數之復雜,在某種程度上也可以算成一種腳本語言了。由于沒有GMT插件,導致在使用的時候很難忍受它的顏值,那就來自己開發一個插件。下面我就來介紹這個插件:vscode-GMT
vscode-GMT
功能
代碼高亮
這個是基本款,只有代碼高亮功能。目前是v0.0.2版本,可以高亮顯示的內容有:
- gmt : gmt 這個詞
- gmt的所有模塊名稱: 比如 pscoast
- gmt的所有模塊的參數名稱:比如 -J, -G 等
- gmt的所有配置參數,比如 MAP_GRID_CROSS_SIZE_PRIMARY
- gmt內置的所有顏色名稱,比如 lightblue
- gmt的所有投影參數,比如 -JM, -JX
- 一些其他的bash類語法,比如數字,變量等
比如上面繪圖的這段代碼,如果沒有使用vscode-GMT插件,其顯示效果如下圖所示的素顏代碼:
有人會問了,gmt的腳本文件就是bash文件呀,vscode已經有了bash的代碼高亮插件了,為啥還是沒有高亮?因為vscode的bash代碼高亮的插件只是針對一小部分的bash語法和關鍵詞進行高亮的,其效果非常有限,正如上圖所示。大量的gmt命令它是識別不了的,想想這也是不可能的事兒。
使用了vscode-GMT插件之后的美顏效果如下圖所示:
顏色主題
這個代碼高亮效果可以隨著VScode的顏色主題的改變而改變,按自己喜好選擇light類主題或者dark類主題。此外,vscode-GMT插件還自帶了兩款增強版的主題:
- OneLight-gmt
- OneDark-gmt
一個是亮色主題一個是暗色主題,自帶的主題會對gmt的一些特有的語法進行增強高亮,已達到更好的高亮效果。這兩者的高亮效果分別如下圖所示。
安裝
vscode-GMT的安裝非常簡單,跟vscode的常規插件安裝方法相同,可以在線安裝。因為我已經將此插件發布到了vscode Marketplace上了,見下圖。
可以直接在vscode上聯網安裝,在插件管理器中輸入 gmt 就可以搜到我的插件了,然后點擊安裝即可生效,見下圖。
切換專屬增強型主題的方法與正常切換主題的方法一樣,只需要在主題搜索欄中輸入gmt就可以過濾出來 OneLight-gmt 和 OneDark-gmt 這兩個專屬主題。操作流程為 ctrl+p -> 輸入>color theme -> 點擊第一個 -> 輸入gmt 即可看到這兩個主題名字,點擊即可。 第二種方法更簡單,在插件管理器中搜索gmt,就可以找到已經安裝了的gmt插件,點擊就可以看到右邊窗口中logo旁邊有一個 Set Color Theme 按鈕,然后就會彈出這兩個主題,選擇點擊其中一個即可生效。vscode-GMT Pro
上面介紹的這個vscode-GMT是基本款,而vscode-GMT-Pro具有更強大的功能,具體如下。
功能
語法高亮
代碼高亮功能與vscode-GMT插件完全相同。
代碼自動補全
目前版本的代碼補全功能包括以下幾項:
- gmt模塊名稱: 輸入gmt然后按空格就會提示所有的gmt模塊命令和相應的解釋說明,可以按上下鍵進行選擇,選中后按Tab鍵就可以自動補全命令。
- gmt模塊的參數:當輸入 gmt 然后選擇某個模塊命令之后,只要按下 - 鍵就可以自動提示所有的與此模塊有關的參數和解釋,這個是非常實用的功能。同樣可以按Tab鍵進行補全。
- -J參數后面的投影方式: 當輸入 -J 后會自動彈出提示可選的投影方式,同樣用上下鍵選擇,可以看到每個投影方式的解釋,然后用Tab鍵生效(補全)。
- -G和-S參數后面的顏色:與-J參數的自動補全類似,只不過這兩個參數后面跟的是可選的顏色名稱。
- 所有的gmt內置變量: 比如當你輸入 map 就會自動提示所有與map相關的內置變量,支持模糊輸入,這對于沒有準確記住內置變量名稱的情況非常有幫助。大大提升了效率。
代碼智能提示快捷鍵
上面的代碼提示功能是鍵盤輸入驅動的,比如當你輸入 - 的時候回驅動參數自動補全功能。但是如果你輸入 - 之后失去了鼠標焦點,或者將一個參數刪除到了 - 的時候,這種情況下是不會自動驅動代碼補全功能的。但是可以用快捷鍵進行強制啟動智能提示功能,快捷鍵為 ctrl+D 或者Mac系統下的 cmd+D 組合鍵盤。
鼠標懸停提示
鼠標懸停提示功能就是當你鼠標放在一個命令或者參數上的時候,會自動提示這個命令或者參數的相關解釋。此功能已經實現,但是需要花時間補充相關的解釋文檔,會很快跟大家見面的。注意:鼠標懸停提示只針對gmt的命令區域有效,不在其他地方出現,就如下面的動圖中演示的那樣。
安裝
由于Pro版插件的開發耗費了大量的時間和精力,所以沒有免費版。或許眾籌是個思路!
需要的可以訪問此鏈接獲取安裝包下載口令,SciByte公眾號里面回復此口令就可以得到安裝包下載地址。 下載完成后按下圖的方式安裝即可,也是非常容易的。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的图片高亮处理编程_GMT语法高亮-智能提示-代码补全插件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 广东执业医师考试备案时间(执业医师考试备
- 下一篇: java 设计模式_Java设计模式的常