以前总是在sublime中装各种插件,去实现某种便捷,如装一个 git 插件可以直接快速的去查看当前打开的文件与远端的这个文件的差异.
但是这些插件总是满足不了你的欲望,有的时候在有一些奇葩的需求,可能没有现有的插件可用,这个时候就要自己去写插件了.

首先Sublime是支持自定义插件的,其次是Sublime的插件是采用python的语法,所以你要在写插件之前至少要了解python语法.不然就望而生畏了.

第一步 创建python脚本文件

直接打开 Sublime 在最上面工具栏中 找到 Tools/Developer/New Plugin

点击完成之后会有一个内容类似下面的未保存文件

1
2
3
4
5
6
7
import sublime
import sublime_plugin


class ExampleCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.insert(edit, 0, "Hello, World!")

关于 sublime 这两个包的 API可以去 SublimeAPI 可能需要翻墙,我只是翻墙之后快了许多.

第二步 填充自己的python文件并保存到相应位置

打开上面所指向的目录自己新建一个文件夹,和你那个User目录同级就行了.
列如我建立一个PythonHead 的目录如下:

里面有个 head.py 的python文件,具体内容如下

1
2
3
4
5
6
7
8
9
10
11
12
import sublime
import sublime_plugin
import datetime

str_head = """#!usr/bin/env python2
#-*- coding: utf-8 -*-
#data:%s\n
"""

class PyHeadCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.insert(edit, 0,str_head % (datetime.datetime.now().strftime("%y-%m-%d %H:%m:%s")))

这个自定义的功能主要是给自己python文件定义加了一些通用的注释而已.
样子就如下面这样

这一写完之后你可以直接打开 Sublime 的命令行 快捷键 ctrl+` 如果快捷键冲突可以直接 View/Show Console 这个也可以

直接在这里面输入如下代码

就会向上面显示的那样.

当然这样肯定是不行的因为这个效率太低下,这里我们直接使用快捷键

第三步 绑定快捷键

在上面的那个PyHead的文件夹下面有个 Default (Windows).sublime-keymap

它这个分了一些平台 如 Default (OSX).sublime-keymap Default (Linux).sublime-keymap
这样的文件夹,这个是你绑定快捷键到你这个 功能上面.
里面的内容如下(使用json的数据格式):

1
2
3
[
{"keys": ["ctrl+alt+h"], "command": "py_head"}
]

如果不熟悉json的话可以自己去补一下.

前面这个定义快捷键,后面是你要调用的函数,这里你可能有疑问了,为啥定义是PyHeadCommand 这个名字 却写个这,
那是因为在Sublime中 函数的绑定都是小写, 如果你是大写就像上面那样驼峰式命名
在绑定的时候是以下划线开头在这个大写字母前面,然后全部小写.
举一个例子吧

1
2
3
如 函数名 PyHead  绑定的 command 是 py_head
函数名 pyhead 绑定的 command 是 pyhead
函数名 PYHead 绑定的 command 是 p_y_head

这下应该明白了吧.

这样你就成功的写了一个 Sublime 插件的 hello world,如果你要写更厉害的插件你还得去学习 正则表达式,至于这个是啥怎么用自己去找,网上一大堆.

好了今天就先到这.有时间我在接着写一些其他的文档如 Sublime的API文档.

最后更新: 2019年08月14日 11:22

原始链接: https://leng521.top/posts/b1de475b/