轉載請註明做者和原帖地址。 node
做者:碧海情天-趙亮(theforever) linux
前言:這個教程本來是分爲三個部分的系列教程,如今合三爲一,內容較多,請耐心閱讀或根據文章目錄挑選感興趣的部分跳躍閱讀。之因此合併和從新編輯,就是爲了方便你們一次性觀看和保存,在從新編輯過程當中,修正了一些格式上的小問題。 git
Sublime Text(如下簡稱ST)是一個近年推出的編輯文本和程序代碼的優秀工具。只要一打開,你就會意識到它和以往的編輯工具的不一樣,感受到它在界面安排上的先進性,更美觀也更貼心。若是再經過它的中英文介紹材料簡單瞭解一下它的特性,你就會發現,這是一個在以往的文字和代碼編輯器基礎上,收集了衆多用戶最迫切須要的一些實際需求並加以實現的讓你驚喜的編輯器。功能貼心,界面時尚,這就是它首先能抓住你的特點,接下來你還會發現它有不少很是有用的插件,包括針對各類編程語言的語法補充和提示、zencode、格式化,以及通用的一些功能插件,而全部這些插件都是開放代碼的,可查閱學習,也可根據須要進行修改。並且雖然功能強大,ST自己的安裝文件體積還不到十M,在低端機上運行也很流暢。因此這絕對是值得你擁有的編輯工具。
關於使用方法和熱鍵介紹,以及插件安裝方法,都有很多專門的文章介紹,能夠搜索閱讀。 github
本教程主要講解:ST3插件的漢化、開發、發佈方法。
適用人羣:須要實現完全漢化的普通用戶;想要了解插件開發和發佈方法脈絡的高級用戶和編程愛好者。 正則表達式
在漢化方面,幾乎其它所有文章都只介紹使用現成的漢化包。這當然方便,但解決不了全部問題。先不提版本更新和漢化包更新的時間差,單說你所安裝的一些插件,因爲它們經常要額外添加英文菜單項,因此就會致使漢化不徹底的現象,不只是它們添加的菜單自身,還包括ST的頂級菜單都經常會從新覆蓋顯示爲英文。由於漢化包只包括基本的ST功能菜單,它既不知道你還會安裝哪些插件,更不可能預先把那些插件產生的菜單項目漢化進去,由於那會生成大量沒有實際實現的無用菜單,況且未知的插件還會不斷涌現,對於它們可能產生的菜單項目實際上是根本沒法猜想的。 編程
因此瞭解插件包的機制,學會手工對插件甚至ST漢化,會讓你掌握主動,不需等待靠人,就能解決問題。 json
首先從漢化ST主體提及: windows
一、在ST的安裝文件夾下有個 Packages 文件夾,進入這個文件夾,你能夠看到裏面文件都是以 sublime-package 爲擴展名的,這表示的就是ST插件包。其中不少文件以編程語言名稱做爲文件名,這些是語法文件,是語法高亮和自動補全的參考。但這個文件夾並不是只有這些,還包括默認的主題方案(theme)以及更重要的 Default.sublime-package文件,咱們要漢化的菜單文件就包含在裏面。 sublime-text
二、接下來你天然須要知道怎麼把菜單文件弄出來進行翻譯而後讓它生效了。sublime-package這個擴展名並不是一種專門的物理文件格式,而是一種邏輯上的文件分類表示,它的實際文件格式實際上是ZIP(若是你的軟件經驗夠多,會在很多軟件中看到相似的用法),因此只要你把這個擴展名改爲ZIP,就能夠用任何支持ZIP的解壓軟件解壓成一個文件夾,內含擴展包中全部文件。 api
三、在這些文件中找到擴展名爲sublime-menu的幾個文件,用文本編輯器打開,能夠看到全部菜單項都在裏面。其中 "caption": "XXXX" 就表明菜單顯示的名稱。除了 { "caption": "-" } (表示菜單分組間隔線)不要動以外,其他的caption後面的英文用漢語替換便可。
注意:帶有"mnemonic": "某字母"的,表示該菜單的鍵盤訪問鍵,因此在翻譯成漢語時,應該把這個字母用括號括起來,加在漢語的前面或後面。
四、保存,而且要注意,必須選擇編碼爲UTF8(能夠選擇不加UTF頭BOM),而不能是GBK或GB2312。由於ST想用UTF8統一全球各類字符集,拋棄了對GBK等字符集的自動識別,因此若是存成GBK,ST就不能正確識別漢字部分,會沒法顯示或顯示不正常。
五、應用。要想生效,須要把解壓文件夾再壓縮回ZIP(注意,要在文件夾裏選擇全部文件壓縮,而不是在文件夾外選擇文件夾壓縮,那樣就會由於目錄層級不對而沒法生效),而後改回原來的擴展名,並移到原文件夾中。
建議採用下面的另一種局部修改方法,更簡便且安全:
這種方法不須要從新打包並更名,並且能夠隨時更改,最主要的是會保留原始的 Default.sublime-package文件,以防萬一改壞不能復原致使只能從新安裝軟件。同時這種方法還會在保存文件時當即反映出改變。在下面講解「插件開發」時,能夠利用這個方法調試插件。
以上是ST主體的漢化。經過對擴展包 Default.sublime-package文件裏的 sublime-menu 文件進行修改。
(2013-12 更新說明:上面講的是對ST主體的菜單項目進行漢化。可是其中有些開關類型的菜單,因爲菜單文件裏沒有提供設置的辦法——按普通設置的話,不會有開關狀態時不一樣的顯示內容,而是固定的內容。這時候就須要修改ST的EXE文件裏面的內容了,並且有些顯示細節,好比「查找替換面板」和狀態欄裏的行列提示等信息,也要經過這個途徑才能漢化。
這裏有兩個漢化完成的軟件包及其說明,你們能夠拿去試用。不只包括菜單、狀態欄、命令面板、側邊欄的漢化,裏面還集成了最經常使用的插件,如GBK自動轉換、EMMET和多重插入、格式化等編輯加強插件及我自制的幾個經常使用功能,經常使用配置設置,並對菜單在漢化基礎上又進行了重組。能夠說不僅是體驗和學習漢化方法,也能夠對你的學習和工做生活提供較大便利。
初版(3056,主菜單爲多個字)的說明(附圖): http://my.oschina.net/theforever/blog/185251
第二版(3059,主菜單爲單字)的說明(附圖): http://my.oschina.net/theforever/blog/186730
第三版(3061)的說明(附圖):http://my.oschina.net/theforever/blog/188155
每一個版本都在前一個基礎上有一些額外的加強,因此最好從頭至尾把三個版本的文章說明都看一下。其中第二版並沒上傳軟件包,能夠到第三版中下載。
)
首先要找到插件的文件,ST3插件有三個存放位置:一個是ST安裝文件夾下面的 Packages 文件夾;一個是在上面第5步找到的 Packages 文件夾;還有一個是和第二個 Packages文件夾同級的Installed Packages文件夾(「Browse Packages/瀏覽擴展包」以後向上一級就能夠看到)。
在這三個目錄中,第一和第三個目錄是放插件包的,不會識別目錄形式的插件,第二個目錄則只識別目錄形式的插件而不識別插件包,適合用來進行插件開發和修改測試,也可做爲用戶對他人的插件進行自定義修改後的留存(當你在其它機器上從新安裝ST和插件後,能夠經過恢復對這個目錄的備份來應用你以前的修改和擴展)。
插件名稱和 sublime-package文件的文件名是對應的,所以很好找到對應的擴展包。找到以後,使用上面漢化ST主體時的兩種方法之一進行修改便可。
(在上一節末尾給出的第三版(3061漢化加強版):http://my.oschina.net/theforever/blog/188155 中,給附帶的幾個最經常使用的插件都進行了漢化,能夠下載查看學習。)
漢化的方法至此結束。
經過上節講的方法,能夠查看全部標準的和擴展的插件內容,爲咱們繼續深刻到進行本身的插件開發打開道路。
下面結合我本身寫的一個ST插件來說解一下開發方法。這個插件功能比較簡單,實際功能代碼部分不多,但已經可以帶引你掌握整個插件開發的主要脈絡,適合入門。其做用是把當前剪貼板中的全部空行(包括只含有空格和TAB製表符而沒有其它有效內容的行)刪除,並粘貼到ST當前編輯的文檔。這在用瀏覽器查看網頁並想收集文字內容時,比較有用,由於即便在網頁中是連續的行,複製粘貼後也會發現中間可能有無用的空行,更不用說有的內容明顯有多個沒必要要的空行了。當一個文件含有多個不一樣頁面的不一樣內容時,這些多餘的空行會使內容顯得散亂而不易區分。
雖然用ST的正則替換能夠消除空行,但輸入仍是稍微麻煩點,並且通常還都要選擇「替換區域內文本」,不然就會把以前已經處理好的文本中須要保留的空行也一併刪除了。
而用ST菜單中的「惟一化」功能,又會消除一些做爲分隔線的相同內容行,和其它不少必要的重複行。「惟一化」在別的時候可能頗有用,但在這種狀況下顯然不適合。
而ST2的delete blank line插件還得在粘貼以後選擇剛纔粘貼完的內容再手工按鍵操做,有時還要按幾回,仍是比較麻煩,尤爲當粘貼的內容較多,不容易看出所有效果的時候,會讓用戶感受比較困擾(藉助ST的文檔小地圖能夠了解到狀況,但若你和我同樣,在處理大文檔時關閉小地圖以提升性能,就沒法藉助這一點了)。
用我這個插件,只須要在瀏覽器或別的地方複製了內容以後,到ST中按一下插件綁定的熱鍵CTRL+ALT+SHIFT+L(雖然看着鍵子多,但按起來仍是挺方便的,也容易理解:SHIFT在功能鍵的含義中通常表示去除或者反向,L表示空行Lines),就會以去掉多餘空行的形式粘貼到你的文檔中。被減肥的內容還能夠再粘貼到別處使用。好比你在論壇看到有我的提問的問題,你想要回復,而且把這個問題和你的回覆都記錄到一個文檔中。在你回覆時,你可能還想要引用他的問題,可是若是他的問題中有一些沒必要要的空行,就會在你的回答前面佔據沒必要要的空間。這種狀況下,你複製他的問題後,在ST裏按插件的熱鍵粘貼後,能夠再回到瀏覽器的回覆框中,用CTRL+V就能再次粘貼剛纔已經減肥過的內容。
下面就開始從頭編寫它吧:
雖然在ST的Tools(工具)菜單裏有一項「new Plugin 新插件"菜單,但我以爲更快捷的方法是你能夠選擇與Installed Packages文件夾同級的Packages文件夾中一個現成的插件目錄(最好裏面的內容種類齊全,若是你有意常作,能夠製做一個模板——甚至能夠編寫一個可視化操做軟件來生成這些文件),複製粘貼,而後更改其名稱,進入裏面,選擇不想要的文件刪除,再對剩下的文件進行修改便可。
介紹一下插件文件夾裏面一些主要文件的做用和寫法:
Main.sublime-menu:插件的主菜單。裏面的內容會添加到ST系統菜單中。
我插件的這部份內容是:
第一行是JSON的結構定界符,即便不瞭解,只要照葫蘆畫瓢保持結構形式就能夠了。
第二行,表示向菜單id爲edit的菜單(即「edit/編輯」菜單)中添加項目。要搞清楚id和caption不一樣,id用於標識真正的身份,caption只做爲在菜單中的顯示內容。
注意:這裏的ID不只限於頂級菜單的ID,而是任意有ID的菜單項,根據你的插件用途進行選擇便可(但最好不要給帶有id而caption是「-」的項目添加子菜單,雖然能加進去,但看着太怪了)
第三行是所添加命令菜單的顯示名稱和對應的要執行的指令ID。指令ID是須要你本身起的,要避免與其它已有指令ID重複,最好起一個能表示你插件用途的名字。
若是要添加多項命令菜單,各項之間要用逗號分開。注意:最後一項的後面就不要再加逗號了。
另外,若是某個傢伙寫他的插件時這樣幹了:
就會使你漢化過的「編輯(E)」菜單仍是顯示英文「Edit(E)」,因此當你看到菜單發生這種現象,就要找到是哪一個插件乾的。不用急,就在這個菜單下面再看看還有哪一項是英文(即便不僅一個也能夠這樣挨個查看一下),找到後,記住菜單的英文內容,再到我在上一節「1、漢化」中介紹過的三個放置插件的目錄中找到有相似名稱的插件,用「1、漢化」中介紹的編輯方法打開菜單文件進行編輯而後保存,就又會顯示中文了。
好,結束了菜單文件,下面再給咱們的插件增長一個在ST裏能夠快捷調用的鍵盤熱鍵,這是經過下面的 Default (Windows).sublime-keymap 文件實現的,內容是:
command必須對應於菜單文件中的命令ID。
另外還有Default (Linux).sublime-keymap 和 Default (OSX).sublime-keymap 兩個文件。若是你的插件可以和想要支持它們,也能夠加上。它們的主要區別是因爲配置的鍵盤在功能鍵數量和命名上有些差別,因此在定義文件中要有針對地設置。
咱們還能夠利用 Default.sublime-commands 文件,在「Ctrl+Shift+P」的命令面板中增長插件所含的指令供調用。雖然會稍微增長點系統開銷,但仍是值得作的。中文名稱在命令面板中一樣能夠搜索調用。
PasteWithoutBlankLines.py 是本插件命令的實現代碼。ST的插件都是用PYTHON寫的,PYTHON程序的擴展名是.PY。當一個插件只有一個PY文件時,該文件名和插件的名稱能夠不一樣,ST會自動調用這個惟一的PY程序。但當插件內有多個PY時,要麼你把其他的PY放在子文件夾中進行調用,要麼你就得用插件文件夾的名稱做爲主程序文件的名稱,這樣ST會在幾個PY中挑選與插件文件夾相同名稱的程序做爲入口先執行。
在我寫這個教程以前,甚至直到如今,其實都沒好好看過PYTHON語法,不過PYTHON程序仍是比較容易閱讀理解的。在漢化過程當中順便看看,結合ST的代碼補全提示功能,已經足夠用來寫個簡單的插件了。電腦技術層出不窮,不可能都去涉獵,但經過一個要作的實事,稍微學點東西,也是不錯的事情。
下面貼一下源碼,關於插件主程序的寫法機制和主要語法,我在源碼裏已經寫上了詳細的註釋:
其中 sublime.get_clipboard、self.view.settings、sublime.set_clipboard 等都是ST的APIs,要想得到更多資料說明以寫出屬於你的複雜的插件,能夠到ST的官方網站去查看API參考文檔,固然,更簡單的方法是看看這篇我和另外一譯者共同翻譯的「Sublime Text 插件 API 參考中文版 http://www.oschina.net/translate/sublime-text-plugin-api-reference」。
與Installed Packages文件夾同級的Packages文件夾,能夠說是專爲調試插件準備的,在其中不管是對菜單仍是對命令實現的程序進行更改,都會即時反應到ST中。在寫好以後,能夠壓縮成ZIP而後改擴展名爲sublime-package。壓縮時要注意:不要選擇目錄進行壓縮,而要在目錄中選擇全部文件進行壓縮。前者會把目錄名壓進去,增長一層目錄深度,致使ST檢索時找不到插件文件。
如今,你能夠本身使用,也能夠把插件打包發給朋友們使用,或放在可以下載的網址上。
到這裏你已經能夠本身開發和使用並小範圍地散發你的插件了,若是你但願在P C面板的安裝插件列表中看到你本身的插件,供全世界的朋友使用,能夠繼續觀看本教程的最後一節:「3、ST插件發佈」。
首先要避免在你的插件中使用中文,由於ST對GBK的態度已經說明一切,你含有中文的插件是極不可能經過下面提到的審覈的。
而後爲了幫助你更好理解爲何要進行下面的行爲,我介紹一下P C的工做原理。它是利用兩個(根據發展,它可能支持更多)流行的源碼項目服務器(github和bitbucket)的功能實現的。它在源碼服務器上存放着一個插件列表文件,裏面含有你在選擇「安裝插件」時會顯示的插件列表。因此你只要提交你的插件地址給那個插件列表文件便可。P C會根據用戶的選擇自動找到你的插件地址。若是你的插件是已經打包好的插件文件(即URL是以插件包擴展名爲結束的),它就會按URL直接下載並存放到插件目錄中。若是你的插件是以源碼目錄的形式存儲在源碼存儲服務器上(只寫有源碼倉庫名稱,不是具體的插件包文件),P C會根據存儲服務器所提供的打包下載功能將你的插件文件打包下載並還原到用戶電腦中的ST插件目錄中。ST會自動對插件目錄進行掃描和應用新插件。
爲了可以向插件列表文件中加入你的插件地址,你須要按照該列表的要求來提供你的插件。
以GITHUB爲例(BitBucket大體也相同),你須要先去 www.github.com 註冊一個賬號。因爲這是源碼倉庫服務器,因此審查機制很是寬鬆,即便是隨便填的郵箱均可以註冊成功。但在以後仍是會提醒你至少驗證一個郵箱的(你能夠設置一個用來登陸的私密郵箱,還能夠設置一個公開的用於交流的郵箱)。固然,因爲你的源碼要面對衆多的內行,因此也不要琢磨幹什麼偷偷摸摸的壞事了。
註冊完成後,你能夠在網站右上方你的賬號旁邊找到「創建倉庫」按鈕,點擊後給本身的倉庫起個名,也就是你的插件的名稱。在這一步要注意,由於這個服務器確定不僅限於你存放ST插件的源碼,因此你確定會想給你的倉庫起個「Sublime xxxx「的名字來標識一下。這個時候建議你最好不要加,由於P C以爲這對於它來講徹底多餘,向它提交的確定都只是ST插件,而帶有這樣名稱的插件下載到用戶電腦裏,也會讓用戶對如此明顯冗餘的內容感到厭煩,所以P C要求插件名稱裏不要含有這樣的字樣。對於那些不幸已經這樣起名的,P C推出了名稱映射功能。這不只對你增長一道設置映射的手續,並且使你的實際插件URL與用戶們看到和使用的插件名稱有所差別,因此最好在創建倉庫時就不要添加,只起描述你插件做用的名字便可。並且應該使用駝峯式命名,避免使用下劃線。在倉庫的描述欄中填寫好插件的說明,包括適用的版本號和用途,要簡潔明確,而後勾選「生成readme.md」。肯定。
好比個人插件源碼地址是:https://github.com/Zhao-Liang/PasteWithoutBlankLines
(特地用了中文名——惋惜ZhaoLiang被佔用了——從P C列表中一看URL就知道是中國人寫的)
如今你已經擁有了一個空的代碼倉庫,你可使用GIT或GITHUB軟件進行同步和版本更新,也能夠直接在網頁中使用「新建文件」和「編輯文件」功能來創建和修改文件。新手用後者比較容易上手,成手用前者能提升效率。
假設你已經經過這兩種方式之一把你的插件內容存到了倉庫中,如今在倉庫根目錄還要創建一個packages.json文件,向其中寫入以下內容:
{ "schema_version": "1.2", "packages": [ { "name": "你的插件名稱,如PasteWithoutBlankLines", "description": "你的插件的描述", "author": "做者名稱,能夠寫你真名或是在 github 上的用戶名", "homepage": "https://github.com/你的用戶名/插件名", "last_modified": "最後修改的日期時間", "platforms": { "*": [ { "version": "你的插件版本號", "url": "https://nodeload.github.com/你的用戶名/插件名/zip/tag名" } ] } } ] }
確保爲上面每一個鍵名設置了你的信息。若插件能工做於全部操做系統平臺,則 platforms 鍵應寫爲 "*" 。 若插件專爲某一操做系統而寫,應寫明是 "osx", "windows" 或是 "linux",也能夠爲三種或單獨一種平臺各自指定不一樣實現方式和版本的插件URL(儘管這不多使用,由於你在一個版本里就能夠經過程序來判斷不一樣的操做系統從而進行不一樣的操做行爲。除非業務確實比較複雜。)。若是你長期只用一種操做系統,可能會以爲忽略另外二者很日常,但若是考慮到P C做者面對的是全球使用不一樣操做系統的用戶,你就會知道他對這一點仍是會至關注意的。
url 鍵必須指定在 https://nodeload.github.com 上,不然不能對全部機器都正常下載。
下載 URL 的最後部分是代碼的分支名。雖然可使用主分支,但因爲下面將會介紹的「防止沒必要要的頻繁更新」的緣由,建議使用一個代碼的特定版本。
當升級插件版本後,要記得更改主分支裏面的 packages.json 文件中的 version 和 URL。
把P C做者本身的packages.json摘錄在下面,看着會更清楚:
{ "schema_version": "1.1", "packages": [ { "name": "Alignment", "description": "Easy alignment of multiple selections and multi-line selections", "author": "Will Bond (wbond)", "homepage": "http://wbond.net/sublime_packages/alignment", "last_modified": "2011-09-18 23:13:00", "platforms": { "*": [ { "version": "2.0.0", "url": "http://sublime.wbond.net/Alignment.sublime-package" } ] } }, { "name": "Package Control", "description": "A full-featured package manager", "author": "Will Bond (wbond)", "homepage": "http://wbond.net/sublime_packages/package_control", "last_modified": "2013-01-21 20:13:00", "platforms": { "*": [ { "version": "1.6.3", "url": "http://sublime.wbond.net/Package Control.sublime-package" } ] } }, { "name": "Prefixr", "description": "Runs CSS through Prefixr.com API", "author": "Will Bond (wbond)", "homepage": "http://wbond.net/sublime_packages/prefixr", "last_modified": "2011-11-14 12:40:00", "platforms": { "*": [ { "version": "1.0.1", "url": "http://sublime.wbond.net/Prefixr.sublime-package" } ] } }, { "name": "SFTP", "description": "Commercial SFTP/FTP plugin - upload, sync, browse, remote edit, diff and vcs integration", "author": "Will Bond (wbond)", "homepage": "http://wbond.net/sublime_packages/sftp", "last_modified": "2012-08-08 08:43:00", "platforms": { "linux": [ { "version": "1.10.2", "url": "http://sublime.wbond.net/SFTP.sublime-package" } ], "osx": [ { "version": "1.10.2", "url": "http://sublime.wbond.net/SFTP.sublime-package" } ], "windows": [ { "version": "1.10.2", "url": "http://sublime.wbond.net/win/SFTP.sublime-package" } ] } }, { "name": "SVN", "description": "Full-featured commercial Subversion plugin with a focus on usability", "author": "Will Bond (wbond)", "homepage": "http://wbond.net/sublime_packages/svn", "last_modified": "2012-08-13 02:07:00", "platforms": { "linux": [ { "version": "1.5.2", "url": "http://sublime.wbond.net/SVN.sublime-package" } ], "osx": [ { "version": "1.5.2", "url": "http://sublime.wbond.net/SVN.sublime-package" } ], "windows": [ { "version": "1.5.2", "url": "http://sublime.wbond.net/win/SVN.sublime-package" } ] } }, { "name": "Terminal", "description": "Launch terminals from the current file or the root project folder", "author": "Will Bond (wbond)", "homepage": "http://wbond.net/sublime_packages/terminal", "last_modified": "2011-11-28 22:49:00", "platforms": { "*": [ { "version": "1.3.1", "url": "http://sublime.wbond.net/Terminal.sublime-package" } ] } }, { "name": "Tortoise", "description": "Keyboard shortcuts and menu entries to execute TortoiseSVN, TortoiseHg and TortoiseGit commands", "author": "Will Bond (wbond)", "homepage": "http://wbond.net/sublime_packages/tortoise", "last_modified": "2011-11-05 23:08:00", "platforms": { "windows": [ { "version": "1.2.1", "url": "http://sublime.wbond.net/Tortoise.sublime-package" } ] } } ] }
從中咱們看到針對不一樣操做系統提供不一樣插件的例子,還能夠看到可以直接指定使用打包好的擴展文件。在你的倉庫中放置一個packages.json和一個打好包的插件,很簡潔,只是你須要本身進行打包和改名的工做了(我用了一下ST3的自動打包功能,不知是BUG仍是個人ST環境被弄得有點混亂了,亦或我沒去看打包是否有點須要遵照的規矩,總之是沒有成功)。
最後,打開 https://github.com/wbond/package_control_channel,在項目欄右方找到FORK按鈕,點擊,這就使你的賬號擁有了 package_control_channel 的一個倉庫副本。找到你賬號裏這個副本,進入,編輯repositories.json,按下面講的第2點注意事項在合適位置插入一行,內容是:
"https://raw.github.com/你的賬號/你的插件倉庫/master/packages.json",
編輯時要注意幾點:
一、不要動別的原來內容,包括行結束符和縮進。只添加你本身的行。由於審查者會在版本服務器中對比你所作的改變,若是發現通篇每行都有變化,確定沒耐心看你究竟加了什麼,以及是否對別人的內容形成破壞,結果天然會拒絕合併你的修改內容。(我好像就是習慣成天然地不當心改了縮進的設置……呵呵,毀了。話說回來,要不是這種習慣,也不會編寫這樣的插件了,我以爲很經常使用,可一直沒看到別人有寫,我至於這麼小衆嗎——補註:不知何時,P C已經收錄了我這個插件,名字就是PasteWithoutBlankLines,有須要的朋友能夠在ST裏安裝使用了。我本身在提交時並無象這個教程這樣認真去作——由於教程是要對你們負責的——但也被收錄了,說明審查還不是很是挑剔的,可能時間多半花在對你插件代碼的實際審查上了,畢竟PYTHON能幹的事情比JS和VBS還要多,危險性也更大,P C做爲收錄和推薦方,確定要負有責任的。雖而後面這部分篇幅挺多,雖然建議你耐心讀完並實際遵照,但也不須要爲此過於糾結,大不了隨便把插件包上傳到某個網盤上,經過宣傳也是能夠的,只是在可信性和可見性上,確定不如出如今P C插件列表中那樣好)
二、添加時要象原內容那樣按照字母大小順序插入到合適位置,這樣會使整個名單保持明瞭而不是混亂。
三、除非你須要作名稱映射,不然不須要管後面的部分。
而後保存。成功後,在項目的正上方有個「PULL REQUEST」(請求推送),即把你剛纔所作的改變提交給原始的 package_control_channel 項目,等待做者審批,因此剩下的就是等待了。審批成功以後,你所添加的插件URL就會在全球ST用戶安裝插件的時候顯示出來供下載安裝了,並且也會出如今http://wbond.net/sublime_packages/community 頁面上,該頁面按時序顯示了全部提交給P C的插件的信息(即你在packages.json中填的一些信息),比在P C安裝面板中縮略顯示的要詳細。
若是你沒有創建和填寫packages.json,P C會取你的代碼倉庫的最後更新日期時間做爲版本號。這會形成性能上的浪費。由於P C每次啓動都會檢查全部插件的版本號,若是你改了一個文件,過會兒又改了另外一個文件,這個過程當中,全球用戶可能會有很多已經安裝你的插件的用戶因爲你的間隔更新而不斷來進行插件升級。在你結束全部修改,正式決定升級插件版本以前,這確定是沒必要要的浪費。因此前面提到過,建議你創建一個分支做爲插件的下載URL,在你的主分支裏只須要存放packages.json,在它裏面用URL指出你插件的真正地址和版本。這樣,只要這個文件內容不變,你的插件倉庫不管怎麼修改也不會引發頻繁的更新。
好了,至此關於ST漢化和插件開發及提交的教程就所有結束了。本教程基於ST3進行講解,對ST2來講,少部分地方可能有所區別,尤爲是在插件編程中涉及一些API變化的部分,須要提取ST的版本,而後採用相應的API方法,這個能夠參考一些從ST2升級到ST3的插件。也能夠查看「延伸閱讀」中的「ST插件API參考中文版」來得到更詳細的關於ST插件API的信息。
【ST插件API參考中文版】:(http://www.oschina.net/translate/sublime-text-plugin-api-reference)
(附圖)Sublime Text 3056 趙亮(碧海情天)漢化定製(雙12)版:http://my.oschina.net/theforever/blog/185251
(附圖)Sublime Text 3059 漢化加強版(趙亮-碧海情天):http://my.oschina.net/theforever/blog/186730
Sublime Text 3061 加強版 by 碧海情天: http://my.oschina.net/theforever/blog/188155