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

Sublime Text提供了非常自由的插件(plugins)扩展功能。我最近出现了一个小小的需求,想开发出一个简单的扩展功能。我想在Sublime Text的系统菜单里添加一个新的菜单,叫做“HTML尖括号转换”,但当点击它后,编辑器里HTML文本中的所有尖括号(>和<)都将会转换成&gt;和&lt;。WEB程序员应该知道这个功能的用武之地。

开发这个插件非常的简单。只需要几行代码。但更复杂的插件也都是这种简单插件基础上扩展出来的。下面我将要介绍开发这个插件需要的步骤和方法。

首先,你需要懂一些Python语言(不需要太深)。然后下面是Sublime Text官方提供的插件API文档和样例:

  • API
  • 插件样例

开发Sublime Text插件,首先点击编辑器系统菜单上的Tools->New Plugin菜单。编辑器会打开一个新的插件模板文件,我们可以在此基础上编辑。

这个plugin文件将要存储的位置:

  • (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_pluginclass ExampleCommand(sublime_plugin.TextCommand):def run(self, edit):self.view.insert(edit, 0, "Hello, World!")

可以看到,模板中插件类的类名是ExampleCommand,按Sublime Text插件的规则,这个插件的运行名称就是“example”。我们可以在console里运行这个插件:

#在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

 

转载于:https://www.cnblogs.com/clschen/p/5438900.html

开发 Sublime Text 3 插件简易教程相关推荐

  1. 前端神器-神级代码编辑软件Sublime Text下载、使用教程、插件推荐说明、全套快捷键...

    Sublime Text 是一个代码编辑器,也是HTML和散文先进的文本编辑器.Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能 ...

  2. 前端神器-神级代码编辑软件Sublime Text下载、使用教程、插件推荐说明、全套快捷键

    Sublime Text 是一个代码编辑器,也是HTML和散文先进的文本编辑器.Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能 ...

  3. sublime text verilog-automatic插件使用方法

    写在前面 本文是sublime text verilog-automatic插件使用方法,作为本人使用查阅,附赠链接以及插件的github地址,经过不断试错和尝试,结合github上的说明,已经成功试 ...

  4. 推荐!Sublime Text 最佳插件列表

    本文由 伯乐在线 - 艾凌风 翻译,黄利民 校稿. 英文出处:ipestov.com.欢迎加入翻译组. 本文收录了作者辛苦收集的Sublime Text最佳插件,很全. 最佳的Sublime Text ...

  5. 一些必不可少的Sublime Text 2插件

    转自:http://www.qianduan.net/essential-to-sublime-the-text-2-plugins.html Sublime Text 2是一个轻量.简洁.高效.跨平 ...

  6. 开发者常用的 Sublime Text 3 插件

    1.官网下载 Sublime Text 3 (已有安装包的,请忽略) Sublime Text 官网下载地址 : http://www.sublimetext.com/ 2.打开 Sublime Te ...

  7. sublime mysql插件_开发者最常用的8款Sublime text 3插件

    Sublime Text作为一个尽为人知的代码编辑器,其优点不用赘述.界面整洁美观.文本功能强大,且运行速度极快,非常适合编写代码,写文章做笔记.Sublime Text还支持Mac.Windows和 ...

  8. Sublime Text 2插件安装及快捷键介绍

    Sublime Text 2是一款不错的编码工具,不仅具有丰富的插件扩展,还有利于提高编码速度的快捷键,下面我们就来了解一下这款神器吧. 1.Sublime Text 2插件 建议先启用Package ...

  9. sublime text html5插件,Sublime Text一些常用插件

    古人云:工欲善其事,必先利其器,确实利用好一些工具能快速提高我们的开发效率.今天我们就来介绍一款极度简洁.轻便.优雅的ide--Sublime Text的插件,帮助你更好更快的完成自己的编码工作. 首 ...

最新文章

  1. android canvas png 失真,【小程序】--------------处理canvas导出图片模糊问题-------------【劉】...
  2. python的@修饰符
  3. Python配置OpenCV时报错:ImportError DLL load failed: %1 不是有效的 Win32 应用程序
  4. php 点击之后保留样式,通过不修改arc.archives.class.php而保留原有样式调上一篇下一篇...
  5. ajax mode,DWR的三种Reverse Ajax Mode配置详解
  6. AaronYang WCF教程目录
  7. linux x86-64下,Linux x86_64下安装Flash Player 9
  8. 和硬件交换方面的知识
  9. java中getHeight是什么意思_Java PImage.getHeight方法代码示例
  10. android游戏分成,原神半年吸金10亿美元,为何国内Android商店还秉承着55分成?
  11. 安装SQL Server 2012 RTM遇到 Microsoft NET Framework 4 0 install
  12. 实对称矩阵性质的数学证明
  13. CE游戏修改器制作游戏修改器傻瓜教程
  14. js写的中文数字转换成数字的一个小小的算法
  15. 联合投稿其乐融融 抖音共创助你大显身手
  16. vagrant box命令
  17. MPEG4视频编码技术介绍
  18. 岁月的剪影【七月My way】
  19. 克服“讨好型人格”,你需要《被讨厌的勇气》
  20. Python游戏 (胖鸟快飞Flappybird)

热门文章

  1. Scala父类构造方法
  2. Python Django 配置静态资源访问(settings配置)
  3. mybatis架构流程
  4. Java算法--插入排序算法
  5. java代码删除文件夹_删除文件夹的java类
  6. android桌面小组件开发_快使用Scriptable自己开发一个iPhone小组件吧
  7. python正则表达式花括号_python正则表达式(+ {})(二)
  8. 电容屏物体识别_兆易创新的传感器布局:电容/光学/超声指纹/ToF全面发力
  9. 一幅图看懂Python编程
  10. 什么是TCP三次握手?