歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 如何開發 Sublime Text 2 的插件

如何開發 Sublime Text 2 的插件

日期:2017/2/28 14:43:51   编辑:Linux教程

Sublime Text 2是一個高度可定制的文本編輯器,一直以來對希望有一個快速強大現代的編輯工具的的程序員保持著持續的吸引力。現在,我們將創建自己的一個Sublime plugin,實現用Nettuts+ Prefixr API處理CSS實現跨浏覽器CSS的目的。

當完成時,你會深入的明了如何創建一個 Sublime Prefixr plugin,並且有能力去寫你自己的編輯器插件。

相關閱讀:

Ubuntu 12.10 安裝破解Sublime Text 2 http://www.linuxidc.com/Linux/2013-07/86898.htm

Ubuntu 13.04安裝Sublime Text 2 http://www.linuxidc.com/Linux/2013-05/84228.htm

前言:術語和參考資料

The extension model for Sublime Text 2 is fairly full-featured.

Sublime Text 2的擴展模型是相當的功能全面。你可以改變語法高亮,實際的編輯器外觀,以及所有的菜單項。此外,還可以創建新的build環境,自動補全,語言定義,代碼區段,宏,鍵綁定,鼠標綁定以及插件。所有這些不同形式的改裝都是用組織在package中的文件來實現的。

所謂pacakage就是一個存儲在你的Packages目錄中的文件夾。你可以點擊Preferences > Browse Packages… 菜單進入你的Packages目錄。也可以通過創建一個zip文件並且把擴展名改為.sublime-package來實現把pacakage打包成一個單獨文件。我們將在本教程中討論一點怎麼打包。

Sublime綁定了很多不同的package。大不多數綁定的都是和特定語言相關的package,包括語言定義,自動補全以及build環境。除了語言相關的package,還有兩個Default和User package。Defaultpackage包含了所有的標准鍵綁定,菜單定義,文件設置和一大堆用python寫的插件。

During the process of writing a plugin, the Sublime Text 2 API reference will be essential.

要寫一個插件,Sublime Text 2 API reference是根本。此外,Defaultpackage對於怎麼做我們的工作也是一個很好的參考。編輯器的大部分功能都是通過commans命令來實現,除了敲入字符之外的所有操作都可以通過commans完成。查看Preferences > Key Bindings – Defaultmenu ,你可以找到很多有用的內建的功能。

現在,pacakge和產檢的區別已經清楚了,可以開始寫我們的插件了。

第一步 - 起步

Sublime有一個功能可以產生一個簡單插件所需要的Python代碼框架。選擇Tools > New Plugin…菜單,可以打開一個新的文件,帶有下面的樣式:

import sublime, sublime_plugin

class ExampleCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.insert(edit, 0, "Hello, World!")

可以看到,引入了兩個Sublime Python的模塊,使得我們可以訪問其API並且創建一個新的類。在開始編輯創建我們自己的插件之前,請先保存這個文件。

要保存這個文件我們需要創建一個package來保存它。 按下 ctrl+s(Windows/Linux) or cmd+s (OS X) 來保存文件。保存對話框默認打開Userpackage,不要把我們的文件存在那裡,而是創建一個新的文件夾,命名為Prefixr。

Packages/

- OCaml/
- Perl/
- PHP/
- Prefixr/
- Python/
- R/
- Rails/

現在,把我們的文件保存在Prefixr文件夾中,命名為Prefixr.py。其實文件名並不重要,只要以.py為擴展名就可以。但方便起見,還是用我們的插件的名字吧。

現在,插件已經做了保存。我們可以試著運行了。輸入 ctrl+`打開Sublime的控制台,這是一個可以訪問API的Python控制台。輸入下面的Python代碼來測試我們的新插件:

view.run_command('example')

你將看到Hello World被插入到了我們的插件文件的開頭。接下來繼續之前先Undo掉這個新的插入。

第二步 - Comman的類型和名字

對於一個插件,Sublime提供了三種類型的command。

  • Text commands 提供通過一個View對象訪問被選定的文件或者buffer的內的能力
  • Window commands 提供一個Window對象,可引用當前的窗口
  • Application commands 沒有引用任何特定的窗口,文件或者buffer,很少使用。

因為我們要用我們的插件來操作CSS文件或者buffer裡面的內容,所以我們要使用 sublime_plugin.TextCommand 類作為我們定制的Prefixr命令的基類。這時,我們就需要命名我們命令的類名了。

在我們的代碼框架中,你可以看到下面的類:

class ExampleCommand(sublime_plugin.TextCommand):

在我們運行命令時,在控制台中執行的是下面的代碼:

view.run_command('example')

Sublime將把繼承自任意一個 sublime_plugin類
(TextCommand,WindowCommand or ApplicationCommand)的類的名字的Command後綴去掉,並且用下劃線符號命名替換駝峰式命名。

這樣一來,為創建一個名字是prefixr的command,類名就必須是PrefixrCommand。

class PrefixrCommand(sublime_plugin.TextCommand):
Copyright © Linux教程網 All Rights Reserved