大家好,又见面了,我是你们的朋友全栈君。
1.背景
虽然可能大神门在编辑器方面都比较偏向于vim之类的自由度更高的工具,但是从我个人来讲sublime这样的插件安装更方便的工具还是比较得心应手的。之前用sublime写英语作文,但是没有一个比较好用的timer,Package_Control里面的track_timer不能实时显示时间,所以博主就自己动手,写了这个插件,可以实时timer,记录时间。效果如下图,
2.使用
使用起来很方便,只要把下载好的sublime-timer文件夹放在下图这个路径下即可。
“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 time
i=0
class 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 = num
self.interval = interval
self.thread_stop = False
def run(self): #Overwrite run() method, put what you want the thread do here
global i
while not self.thread_stop:
sublime.set_timeout(write_time,1)
i+=1
time.sleep(self.interval)
def pause(self):
self.thread_stop = True
def zero(self):
global i
i=0
thread1 = timer(1, 1)
class gtimerCommand(sublime_plugin.TextCommand):
def run(self, edit):
global thread1
thread=timer(1,1)
if thread1.isAlive():
live=True
else:
thread.start()
thread1=thread
class gtimerpauseCommand(sublime_plugin.TextCommand):
def run(self, edit):
global thread1
thread1.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
******************************************/
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152696.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...