最新消息:把Logo换了一下,虽然丑了点,但至少完全是自己的设计

Sublime Text插件的开发方法

Python 宇托 1053浏览 暂无评论

Sublime Text真的是一个了不起的文本编辑器,它的功能很全,不过有时候也有碰到自己想要的功能但没有的情况,这比如我们要实现这么一个功能:把选中的字符串里的每一个字符后加上它的Unicode。比如我们选中了hello,中国,我们想要输出为:h(104)e(101)l(108)l(108)o(111),(44)中(20013)国(22269)

我用的是 Sublime Text 2,所以以下方法可能只对Sublime Text 2有用。

新建文件

先在Sublime Text的目录下的Data\Packages\User文件夹下新建一个python文件。

文件名和你要写的类名可以不同,个人建议写成一样的。类名的命名方式在第二步介绍,比如文件名为:GetUnicodeCommand.py。

新建类

打开GetUnicodeManger.py,新建一个GetUnicodeCommand类,类名必须以Command结尾,大小写也要相同。

编写插件内容

代码中要注意的东西如下:

关于逻辑处理,说什么都不如直接上代码,呵呵

Python
import sublime, sublime_plugin

class GetUnicodeCommand(sublime_plugin.TextCommand):
    def run(self, edit):

        selectRegions = self.view.sel()
        if len(selectRegions) == 0: return

        for selectRegion in selectRegions:
            selectString = self.view.substr(selectRegion)
            changedString = ""
            for char in selectString:
                changedString += char + '(' + str(ord(char)) + ')'

            self.view.replace(edit, selectRegion, changedString)

添加快捷键

在打开Sublime Text 2的菜单打开“Preference”-> “Key Bindings - User”,在新打开的Default (Windows).sublime-keymap里面添加一行:

JSON
{ "keys": ["ctrl+.", "ctrl+u"], "command": "get_unicode"}

我定义的快捷键是ctrl+.之后再按ctrl+u,你也可以定义成自己喜欢的快捷键。

要注意的是command的定义值是你写的类名去掉Command后的字符串,然后在首字母以外的大写字母前加下划线,再转为小写。
如:GetUnicodeCommand -> get_unicode

添加完快捷键的Default (Windows).sublime-keymap文件内容例子如下:

JSON
[
    { "keys": ["ctrl+alt+shift+b"], "command": "build", "args": {"variant": "RunInCommand"} },
    { "keys": ["ctrl+.", "ctrl+u"], "command": "get_unicode"}
]

验证

最后,我们选中一段文字ctrl+.之后再按ctrl+u试试。

我添一段结果:大(22823)家(23478)好(22909)。

转载请注明:宇托的狗窝 » Sublime Text插件的开发方法

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址