sublime插件开发教程(附源码)
1.背景
2.使用
"control+alt+p": pause or stop timer
"control+alt+z": make zero
3.制作过程
(1)环境
(2)自带example
1、通过Tools -> New Plugin...来打开一个初始化的插件编辑文件,它将有如下的内容:
import sublime, sublime_plugin
class ExampleCommand(sublime_plugin.TextCommand):def run(self, edit):self.view.insert(edit, 0, "Hello, World!")
2、通过Preferences -> Browse Packages...打开Packages文件夹,在该文件夹下建立个子文件夹,名字为你想开发的插件名字,如:KeymapManager。回到插件开发的初始化编辑器页面,通过ctrl+s (Windows/Linux) orcmd+s (OS X)保存这个文件,并放到你建立的子文件夹下,文件名如:KeymapManager.py
3、通过ctrl+`快捷键打开SublimeText的控制台,执行如下的命令:
view.run_command('example')
如果你在当前文件最前面看到插入了Hello, Word!,那表明插件执行成功了。
4、ExampleCommand名字改为你想要的插件名字,如: KeymapmanagerCommand,然后就可以开发该插件对应的功能了。
5、通过官方的API文档查找你需要的接口,文档见:http://www.sublimetext.com/docs/2/api_reference.html
(3)sublime-timer
import sublime, sublime_plugin
import threading
import timei=0class timer(threading.Thread): #The timer class is derived from the class threading.Thread def __init__(self, num, interval):threading.Thread.__init__(self)self.thread_num = numself.interval = intervalself.thread_stop = False def run(self): #Overwrite run() method, put what you want the thread do hereglobal iwhile not self.thread_stop:sublime.set_timeout(write_time,1)i+=1 time.sleep(self.interval) def pause(self): self.thread_stop = Truedef zero(self):global ii=0 thread1 = timer(1, 1)
class gtimerCommand(sublime_plugin.TextCommand): def run(self, edit):global thread1thread=timer(1,1) if thread1.isAlive():live=Trueelse: thread.start()thread1=threadclass gtimerpauseCommand(sublime_plugin.TextCommand): def run(self, edit): global thread1thread1.pause()class gtimerzeroCommand(sublime_plugin.TextCommand): def run(self, edit):global thread1 thread1.zero()def write_time():sublime.status_message(time_manage(i))def time_manage(time_number):time_str='time:'+str(time_number/60)+'min '+str(time_number%60)+'s'return time_str
三个command class,分别对应着上面提到的三个快捷键,这个对应关系可以在另外的keymap文件中定义,大家可以把整个项目clone下来就看到了。
(4)发布
/********************************
* 本文来自博客 “李博Garvin“
* 转载请标明出处:http://blog.csdn.net/buptgshengod
******************************************/
sublime插件开发教程(附源码)相关推荐
- java中batch基础_详解Spring batch 入门学习教程(附源码)
详解Spring batch 入门学习教程(附源码) 发布时间:2020-09-08 00:28:40 来源:脚本之家 阅读:99 作者:achuo Spring batch 是一个开源的批处理框架. ...
- python 开发视频播放网站_python开发微电影视频网站教程附源码
做为一个合格的Pythoner,只掌握一个框架是不够,如果你有过其它Python框架(例如django)的使用经验,对比不同框架的特性来学习,你将收获更多 当前信息若含有黄赌毒等违法违规不良内容,请点 ...
- 毕业设计-基于SSM框架大学教务管理平台项目开发实战教程(附源码)
文章目录 1.项目简介 2.项目收获 3.项目技术栈 4.测试账号 5.项目部分截图 6.常见问题 毕业设计-基于SSM框架大学教务管理平台项目实战教程-附源码 课程源码下载地址:https://do ...
- Flask+VUE 实现页面增删改查显示开发+测试(图文教程附源码)
目录 一.新建项目并初始化 二.安装依赖 axios.elementUI 三.Vue代码 四.进行接口联调 五.后端接口优化 六.web页面功能测试 七.总结 八.展望 九.附录(截止发文时的代码) ...
- 微信小程序UI自动化实践:python+minium+PO模式(超详细教程附源码供下载)
文章目录 前言 一.minium介绍 二.安装环境 1. 安装minium doc 2. 安装minium 3. 启动小程序 三.准备知识 1. 启动 2. 配置 3. 命令行运行 4. 元素定位 5 ...
- 微信小程序 推送模板教程 附源码
无聊的时候 玩一下小功能踩踩坑 首先模板推送 需要准备一些材料 准备材料:1)公众号|小程序,添加选择的模板消息,2)在设置>开发设置页面,开通消息模板功能:如: 如果还没模板素材的 请新建一 ...
- SpringBoot 和 Vue 前后端分离教程(附源码)
编辑:业余草 来源:https://www.xttblog.com/?p=4851 昨天,一位网友问我要 SpringBoot + Vue 的源码项目.其实网上有很多,我这里分享一个项目的简单教程,授 ...
- Java微信公众号发送消息-保姆级教程附源码
目录 1. 概念说明: 2. 开发准备: 3. 测试demo(更改配置信息即可使用) 3.1. 服务器配置 3.1.1.配置填写说明 3.1.2.校验服务器有效性: 3.1.3.URL后端接口代码和校 ...
- 2020最新款影视小程序后端+前端搭建详细教程附源码
准备工作 教程很详细一步步操作都可以上线,教程都是亲自发布的,希望各位要搬运的时候备注来自哪里 购买云服务器:教程等待更新 购买域名+配置ssl证书:教程待更新 常见问题: 问:域名需要备案吗? 回: ...
- 最新版的SSM框架spring5.0搭建教程(附源码)
<p>用SSM框架已经有一段时间了,但都没有完整地搭建过一次工程.前段时间比较有时间就自己试着搭建了一下,差不多都是用的最新的spring版本了,然后就在这个基础上做了很多的实验测试.最近 ...
最新文章
- English trip -- Review Unit1 Personal Information 个人信息
- 使用Jdom2将一个xml文件添加到另一个xml中
- gl.getAttribLocation P41 获取name参数指定的attribute变量存储地址
- 【NOIP2005】过河
- 漫画:什么是MD5算法
- windows下eclipse调试hadoop详解
- Docker存储驱动devicemapper介绍和配置
- 'SELECT'语句中的'IF' - 根据列值选择输出值
- C# DataGridView 全选 反选
- 解决mysql不是内部或外部命令 菜鸟教程
- 分享6个关于自主学习的思维导图模板
- sha256算法_以太坊2.0将弃用Keccak256,而启用SHA256哈希算法?
- JAVA智能分析的简单聚众筹平台计算机毕业设计Mybatis+系统+数据库+调试部署
- QQ快速登录的实现原理
- 基于环信的开源即时通讯项目
- Android实用视图动画及工具系列之九:漂亮的图片选择器,高性能防崩溃图片选择工具
- CSS——CSS基础知识
- maven中filtering的使用
- 29岁,从绝望崩溃到年入50万:这个技能,决定你5年后的人生!
- 3天10万,5天20万!中山公园这场摄影大赛是如何做到的?
热门文章
- 通信原理-随相数字信号的最佳接收
- 中大计算机研究生英语免修条件,通知|关于接受2017级理科研究生 基础英语课程免修免考申请的通知...
- vue 如何解析原生html,VUE渲染后端返回含有script标签的html字符串示例
- linux下的代码比较工具下载,linux下的代码工具比较
- oracle中批量更新,oracle 批量更新
- java 08_Java08-构造方法
- 请简述计算机软件系统与硬件系统的关系,电脑硬件与软件的关系是什么?
- mybatis 分页需要的jar包下载_牛逼哄哄的PageHelper分页插件到底牛在哪里?
- vbnullchar相当于 java_VB第2版习题与解答的.doc
- 模拟银行取钱 (多线程操作的好处)