1.背景

   虽然可能大神门在编辑器方面都比较偏向于vim之类的自由度更高的工具,但是从我个人来讲sublime这样的插件安装更方便的工具还是比较得心应手的。之前用sublime写英语作文,但是没有一个比较好用的timer,Package_Control里面的track_timer不能实时显示时间,所以博主就自己动手,写了这个插件,可以实时timer,记录时间。效果如下图,

2.使用

 
   使用起来很方便,只要把下载好的sublime-timer文件夹放在下图这个路径下即可。
    可以用快捷键方便的对timer进行操作:
          "control+alt+t": start timer
          "control+alt+p": pause or stop timer
          "control+alt+z": make zero

3.制作过程

(1)环境

   
       开发sublime插件用到的是python语言,因为要用到sublime内置的sublime和sublime_plugin库,所以debug和调试都应该在sublime里面。
下面的链接是sublime的库得参数信息:http://www.sublimetext.com/docs/2/api_reference.html

(2)自带example

      如果不习惯看开发文档,可以参考下以下example的开发(下面参考自http://www.welefen.com/how-to-develop-sublime-text-plugin.html)。

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)发布

      如果你做好了一个个性插件想让更多的朋友使用的话可以试试以下两种途径。
1.可以给https://github.com/SublimeText发email
2.可以给https://github.com/wbond/package_control_channelpull issue(有一个文档,流程比较麻烦)
项目地址:https://github.com/jimenbian/sublime-timer(fork完别忘了给个star)
好了,看到这里大家应该已经对插件制作有些了解了,动起手来吧!

/********************************

* 本文来自博客  “李博Garvin“

* 转载请标明出处:http://blog.csdn.net/buptgshengod

******************************************/

sublime插件开发教程(附源码)相关推荐

  1. java中batch基础_详解Spring batch 入门学习教程(附源码)

    详解Spring batch 入门学习教程(附源码) 发布时间:2020-09-08 00:28:40 来源:脚本之家 阅读:99 作者:achuo Spring batch 是一个开源的批处理框架. ...

  2. python 开发视频播放网站_python开发微电影视频网站教程附源码

    做为一个合格的Pythoner,只掌握一个框架是不够,如果你有过其它Python框架(例如django)的使用经验,对比不同框架的特性来学习,你将收获更多 当前信息若含有黄赌毒等违法违规不良内容,请点 ...

  3. 毕业设计-基于SSM框架大学教务管理平台项目开发实战教程(附源码)

    文章目录 1.项目简介 2.项目收获 3.项目技术栈 4.测试账号 5.项目部分截图 6.常见问题 毕业设计-基于SSM框架大学教务管理平台项目实战教程-附源码 课程源码下载地址:https://do ...

  4. Flask+VUE 实现页面增删改查显示开发+测试(图文教程附源码)

    目录 一.新建项目并初始化 二.安装依赖 axios.elementUI 三.Vue代码 四.进行接口联调 五.后端接口优化 六.web页面功能测试 七.总结 八.展望 九.附录(截止发文时的代码) ...

  5. 微信小程序UI自动化实践:python+minium+PO模式(超详细教程附源码供下载)

    文章目录 前言 一.minium介绍 二.安装环境 1. 安装minium doc 2. 安装minium 3. 启动小程序 三.准备知识 1. 启动 2. 配置 3. 命令行运行 4. 元素定位 5 ...

  6. 微信小程序 推送模板教程 附源码

    无聊的时候 玩一下小功能踩踩坑  首先模板推送 需要准备一些材料 准备材料:1)公众号|小程序,添加选择的模板消息,2)在设置>开发设置页面,开通消息模板功能:如: 如果还没模板素材的 请新建一 ...

  7. SpringBoot 和 Vue 前后端分离教程(附源码)

    编辑:业余草 来源:https://www.xttblog.com/?p=4851 昨天,一位网友问我要 SpringBoot + Vue 的源码项目.其实网上有很多,我这里分享一个项目的简单教程,授 ...

  8. Java微信公众号发送消息-保姆级教程附源码

    目录 1. 概念说明: 2. 开发准备: 3. 测试demo(更改配置信息即可使用) 3.1. 服务器配置 3.1.1.配置填写说明 3.1.2.校验服务器有效性: 3.1.3.URL后端接口代码和校 ...

  9. 2020最新款影视小程序后端+前端搭建详细教程附源码

    准备工作 教程很详细一步步操作都可以上线,教程都是亲自发布的,希望各位要搬运的时候备注来自哪里 购买云服务器:教程等待更新 购买域名+配置ssl证书:教程待更新 常见问题: 问:域名需要备案吗? 回: ...

  10. 最新版的SSM框架spring5.0搭建教程(附源码)

    <p>用SSM框架已经有一段时间了,但都没有完整地搭建过一次工程.前段时间比较有时间就自己试着搭建了一下,差不多都是用的最新的spring版本了,然后就在这个基础上做了很多的实验测试.最近 ...

最新文章

  1. English trip -- Review Unit1 Personal Information 个人信息
  2. 使用Jdom2将一个xml文件添加到另一个xml中
  3. gl.getAttribLocation P41 获取name参数指定的attribute变量存储地址
  4. 【NOIP2005】过河
  5. 漫画:什么是MD5算法
  6. windows下eclipse调试hadoop详解
  7. Docker存储驱动devicemapper介绍和配置
  8. 'SELECT'语句中的'IF' - 根据列值选择输出值
  9. C# DataGridView 全选 反选
  10. 解决mysql不是内部或外部命令 菜鸟教程
  11. 分享6个关于自主学习的思维导图模板
  12. sha256算法_以太坊2.0将弃用Keccak256,而启用SHA256哈希算法?
  13. JAVA智能分析的简单聚众筹平台计算机毕业设计Mybatis+系统+数据库+调试部署
  14. QQ快速登录的实现原理
  15. 基于环信的开源即时通讯项目
  16. Android实用视图动画及工具系列之九:漂亮的图片选择器,高性能防崩溃图片选择工具
  17. CSS——CSS基础知识
  18. maven中filtering的使用
  19. 29岁,从绝望崩溃到年入50万:这个技能,决定你5年后的人生!
  20. 3天10万,5天20万!中山公园这场摄影大赛是如何做到的?

热门文章

  1. 通信原理-随相数字信号的最佳接收
  2. 中大计算机研究生英语免修条件,通知|关于接受2017级理科研究生 基础英语课程免修免考申请的通知...
  3. vue 如何解析原生html,VUE渲染后端返回含有script标签的html字符串示例
  4. linux下的代码比较工具下载,linux下的代码工具比较
  5. oracle中批量更新,oracle 批量更新
  6. java 08_Java08-构造方法
  7. 请简述计算机软件系统与硬件系统的关系,电脑硬件与软件的关系是什么?
  8. mybatis 分页需要的jar包下载_牛逼哄哄的PageHelper分页插件到底牛在哪里?
  9. vbnullchar相当于 java_VB第2版习题与解答的.doc
  10. 模拟银行取钱 (多线程操作的好处)