以前我經常使用的編程工具是UltraEdit和Editplus,UltraEdit裏強大的搜索和大文本加載功能是我喜歡的。但這兩款文本編輯器是收費的,我一直用破解版的內心有鬼。自從發現了Sublime Text這款免費編輯器後,它就成了我愛不釋手的優先選擇的編程工具。Sublime Text強大的語法自動提示功能是我最看重的一點,我常常會編輯一些HTML代碼,HTML代碼裏的全部語法標記,它都能提供自動補全,還能提示全部CSS屬性的可選屬性值,極大的方便了HTML和CSS開發。html
Sublime Text提供了很是自由的插件(plugins)擴展功能。我最近出現了一個小小的需求,想開發出一個簡單的擴展功能。我想在Sublime Text的系統菜單裏添加一個新的菜單,叫作「HTML尖括號轉換」,但當點擊它後,編輯器裏HTML文本中的全部尖括號(>和<)都將會轉換成>和<。WEB程序員應該知道這個功能的用武之地。程序員
開發這個插件很是的簡單。只須要幾行代碼。但更復雜的插件也都是這種簡單插件基礎上擴展出來的。下面我將要介紹開發這個插件須要的步驟和方法。編程
首先,你須要懂一些Python語言(不須要太深)。而後下面是Sublime Text官方提供的插件API文檔和樣例:api
開發Sublime Text插件,首先點擊編輯器系統菜單上的Tools->New Plugin菜單。編輯器會打開一個新的插件模板文件,咱們能夠在此基礎上編輯。編輯器
這個plugin文件將要存儲的位置:ide
- (OSX): Users」Username」LibraryApplication SupportSublime Text 3Packages
- (WIN7): C:Users」Username」AppDataRoamingSublime Text 3Packages
注意,上面地址這的」Username」,你須要把它替換成你的電腦的用戶名。工具
咱們把這個還未開發的plugin文件命名爲「htmlcodeconverter.py」,保存在上面提示的相應的目錄下。Sublime Text會自動掃描這個目錄,並加載裏面的插件文件。也就是說,放在這個目錄下的插件是直接激活啓用的。若是你的插件有問題,有錯誤,Sublime Text加載失敗,錯誤信息會在console窗口裏提示。開啓console窗口的方法是點擊菜單View->Show Console。插件
前文中,咱們擊編輯器系統菜單上的Tools->New Plugin菜單。編輯器會打開一個新的插件模板文件,這個缺省的模板文件是這樣的:設計
import sublime, sublime_plugin class ExampleCommand(sublime_plugin.TextCommand): def run(self, edit): self.view.insert(edit, 0, "Hello, World!")
能夠看到,模板中插件類的類名是ExampleCommand
,按Sublime Text插件的規則,這個插件的運行名稱就是「example」。咱們能夠在console裏運行這個插件:code
#在console裏輸入下面的命令 view.run_command('example')
你會看到」Hello, World!」字樣出如今編輯器裏。這說明這個插件已經可使用了。固然,它沒有實現咱們想要的功能,下面是對這個模板文件修改後的代碼:import sublime, sublime_plugin
class ExampleCommand(sublime_plugin.TextCommand):
def run(self, edit):
for region in reversed(self.view.find_all("<")): if not region.empty(): self.view.replace(edit, region, "<") for region in reversed(self.view.find_all(">")):
if not region.empty():
self.view.replace(edit, region, ">")
上面的代碼實現了我最初設計的需求,也就是將編輯器裏HTML文本中的全部尖括號(>和<)都將會轉換成>和<。
最後一步是建立能夠調用這個插件的菜單。這個菜單能夠安插在編輯器系統菜單的任何一個地方,也能夠設計成一個獨立的菜單。Sublime Text提供了三種菜單位置,分別是主菜單,側邊欄菜單和上下文菜單(右鍵菜單),這些菜單的配置文件名分別是:
- Main.sublime-menu
- Side Bar.sublime-menu
- Context.sublime-menu
咱們須要使用的是「Main.sublime-menu」這個文件,這個文件和咱們的插件文件放在同一個目錄下。這個文件起初是沒有的,咱們須要本身建立。
把下面的內容添加到咱們新建立的「Main.sublime-menu」文件裏:
[ { "id": "edit", "children": [ { "id" : "htmlcodeconverter", "caption" : "HTML尖括號轉換", "command" : "example" } ] } ]
解釋一下這個菜單配置內容。其中「edit」就是編輯器主菜單」Edit」,咱們的新插件將做爲它的子菜單。」htmlcodeconverter」是咱們的插件的惟一ID,這裏我將它設爲文件名。而「example」就是咱們的插件文件裏面的類名(去掉Command字符)。
一旦這個菜單配置文件保存成功。你當即就能在編輯器系統菜單裏看到這個子菜單,也就是說Sublime Text是自動掃描這些配置文件,實時加載配置項。
實際上,目前爲止,咱們的插件開發工做已經完成了。
固然,還能夠完善一下,還能夠給這個插件添加快捷鍵。Sublime Text系統菜單裏有專門添加快捷鍵的子菜單:
- (OSX) 「Sublime Text」 > 「Preferences」 > 「Key Bindings – Default」
- (Windows) 「Preferences」 > 「Key Bindings – Default」
點開後,添加以下代碼:
[ { "keys": ["ctrl+shift+c"], "command": "example" } ]
這樣就大功告成了。你是否是以爲開發Sublime Text插件(plugins)果然很是的簡單!