开发 Sublime Text 3 插件简易教程
之前我常用的编程工具是UltraEdit和Editplus,UltraEdit里强大的搜索和大文本加载功能是我喜欢的。但这两款文本编辑器是收费的,我一直用破解版的心里有鬼。自从发现了Sublime Text这款免费编辑器后,它就成了我爱不释手的优先选择的编程工具。Sublime Text强大的语法自动提示功能是我最看重的一点,我经常会编辑一些HTML代码,HTML代码里的所有语法标记,它都能提供自动补全,还能提示所有CSS属性的可选属性值,极大的方便了HTML和CSS开发。
Sublime Text提供了非常自由的插件(plugins)扩展功能。我最近出现了一个小小的需求,想开发出一个简单的扩展功能。我想在Sublime Text的系统菜单里添加一个新的菜单,叫做“HTML尖括号转换”,但当点击它后,编辑器里HTML文本中的所有尖括号(>和<)都将会转换成>和<。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文本中的所有尖括号(>和<)都将会转换成>和<。
最后一步是创建可以调用这个插件的菜单。这个菜单可以安插在编辑器系统菜单的任何一个地方,也可以设计成一个独立的菜单。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)果真非常的简单!
原文地址:http://www.lindukj.cn/news/archives/855
转载于:https://www.cnblogs.com/clschen/p/5438900.html
开发 Sublime Text 3 插件简易教程相关推荐
- 前端神器-神级代码编辑软件Sublime Text下载、使用教程、插件推荐说明、全套快捷键...
Sublime Text 是一个代码编辑器,也是HTML和散文先进的文本编辑器.Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能 ...
- 前端神器-神级代码编辑软件Sublime Text下载、使用教程、插件推荐说明、全套快捷键
Sublime Text 是一个代码编辑器,也是HTML和散文先进的文本编辑器.Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能 ...
- sublime text verilog-automatic插件使用方法
写在前面 本文是sublime text verilog-automatic插件使用方法,作为本人使用查阅,附赠链接以及插件的github地址,经过不断试错和尝试,结合github上的说明,已经成功试 ...
- 推荐!Sublime Text 最佳插件列表
本文由 伯乐在线 - 艾凌风 翻译,黄利民 校稿. 英文出处:ipestov.com.欢迎加入翻译组. 本文收录了作者辛苦收集的Sublime Text最佳插件,很全. 最佳的Sublime Text ...
- 一些必不可少的Sublime Text 2插件
转自:http://www.qianduan.net/essential-to-sublime-the-text-2-plugins.html Sublime Text 2是一个轻量.简洁.高效.跨平 ...
- 开发者常用的 Sublime Text 3 插件
1.官网下载 Sublime Text 3 (已有安装包的,请忽略) Sublime Text 官网下载地址 : http://www.sublimetext.com/ 2.打开 Sublime Te ...
- sublime mysql插件_开发者最常用的8款Sublime text 3插件
Sublime Text作为一个尽为人知的代码编辑器,其优点不用赘述.界面整洁美观.文本功能强大,且运行速度极快,非常适合编写代码,写文章做笔记.Sublime Text还支持Mac.Windows和 ...
- Sublime Text 2插件安装及快捷键介绍
Sublime Text 2是一款不错的编码工具,不仅具有丰富的插件扩展,还有利于提高编码速度的快捷键,下面我们就来了解一下这款神器吧. 1.Sublime Text 2插件 建议先启用Package ...
- sublime text html5插件,Sublime Text一些常用插件
古人云:工欲善其事,必先利其器,确实利用好一些工具能快速提高我们的开发效率.今天我们就来介绍一款极度简洁.轻便.优雅的ide--Sublime Text的插件,帮助你更好更快的完成自己的编码工作. 首 ...
最新文章
- android canvas png 失真,【小程序】--------------处理canvas导出图片模糊问题-------------【劉】...
- python的@修饰符
- Python配置OpenCV时报错:ImportError DLL load failed: %1 不是有效的 Win32 应用程序
- php 点击之后保留样式,通过不修改arc.archives.class.php而保留原有样式调上一篇下一篇...
- ajax mode,DWR的三种Reverse Ajax Mode配置详解
- AaronYang WCF教程目录
- linux x86-64下,Linux x86_64下安装Flash Player 9
- 和硬件交换方面的知识
- java中getHeight是什么意思_Java PImage.getHeight方法代码示例
- android游戏分成,原神半年吸金10亿美元,为何国内Android商店还秉承着55分成?
- 安装SQL Server 2012 RTM遇到 Microsoft NET Framework 4 0 install
- 实对称矩阵性质的数学证明
- CE游戏修改器制作游戏修改器傻瓜教程
- js写的中文数字转换成数字的一个小小的算法
- 联合投稿其乐融融 抖音共创助你大显身手
- vagrant box命令
- MPEG4视频编码技术介绍
- 岁月的剪影【七月My way】
- 克服“讨好型人格”,你需要《被讨厌的勇气》
- Python游戏 (胖鸟快飞Flappybird)
热门文章
- Scala父类构造方法
- Python Django 配置静态资源访问(settings配置)
- mybatis架构流程
- Java算法--插入排序算法
- java代码删除文件夹_删除文件夹的java类
- android桌面小组件开发_快使用Scriptable自己开发一个iPhone小组件吧
- python正则表达式花括号_python正则表达式(+ {})(二)
- 电容屏物体识别_兆易创新的传感器布局:电容/光学/超声指纹/ToF全面发力
- 一幅图看懂Python编程
- 什么是TCP三次握手?