开发 Sublime Text 3 插件简易教程

以前我经常使用的编程工具是UltraEdit和Editplus,UltraEdit里强大的搜索和大文本加载功能是我喜欢的。但这两款文本编辑器是收费的,我一直用破解版的内心有鬼。自从发现了Sublime Text这款免费编辑器后,它就成了我爱不释手的优先选择的编程工具。Sublime Text强大的语法自动提示功能是我最看重的一点,我常常会编辑一些HTML代码,HTML代码里的全部语法标记,它都能提供自动补全,还能提示全部CSS属性的可选属性值,极大的方便了HTML和CSS开发。html

Sublime Text提供了很是自由的插件(plugins)扩展功能。我最近出现了一个小小的需求,想开发出一个简单的扩展功能。我想在Sublime Text的系统菜单里添加一个新的菜单,叫作“HTML尖括号转换”,但当点击它后,编辑器里HTML文本中的全部尖括号(>和<)都将会转换成&gt;和&lt;。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文本中的全部尖括号(>和<)都将会转换成&gt;和&lt;。

最后一步是建立能够调用这个插件的菜单。这个菜单能够安插在编辑器系统菜单的任何一个地方,也能够设计成一个独立的菜单。Sublime Text提供了三种菜单位置,分别是主菜单,侧边栏菜单和上下文菜单(右键菜单),这些菜单的配置文件名分别是:

  1. Main.sublime-menu
  2. Side Bar.sublime-menu
  3. 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)果然很是的简单!

 

原文地址:http://www.lindukj.cn/news/archives/855

相关文章
相关标签/搜索