Sublime Text 3插件开发记录

前言

今天在使用FontForge进行字体裁剪的时候,实现了一次Sublime Text 3插件开发的入门,简单记录一下,供以后参考。

插件要点

  1. 开发语言是python,新建代码文件后存放到指定目录:%User%/AppData\Roaming\Sublime Text 3\Packages(可通过sublime-preferences-browse packages菜单打开),可以在该目录下新建目录,但层级不可太深。
  2. 代码类的名称规则:命令名+Command,比如testCommand,后面会贴出示例。
  3. 如果不需要菜单,可通过Ctrl+` 打开sublime命令行窗口,执行命令view.run_command(“命令名”)即可运行。
  4. 如果要绑定菜单,在命令文件同级目录下,新建文本Main.sublime-menu,文本内容如下:
[
  {
    "id": "tools",
    "children": [
      {
        "id": "CustomTools",
        "caption": "自定义工具",
        "children":[
            {
                "caption": "文本去重",
                "id": "duplicatetextremover",
                "command": "duplicatetextremover"
            },
            {
                "caption": "转换为fontforge选择语句",
                "id": "convert2unicode",
                "command": "convert2unicode"
            }
        ]
      }
    ]
  }
]
  1. 如果菜单没出来,可以重启sublime试试, 如果代码有问题,菜单会置灰不可用。

示例脚本

  1. 字符串去重
import sublime
import sublime_plugin


class duplicatetextremoverCommand(sublime_plugin.TextCommand):
	def run(self, edit):
		endPoint = self.view.size()
		alltext = self.view.substr(sublime.Region(0, endPoint))
		tempText = ""
		for x in alltext:
			if x not in tempText and x != "\n":
				tempText += x
				pass
		self.view.insert(edit, endPoint, "\n\n去重结果:\n" + tempText)
  1. 转换为fontforge选择语句
import sublime
import sublime_plugin


class convert2unicodeCommand(sublime_plugin.TextCommand):
	def run(self, edit):
		endPoint = self.view.size()
		alltext = self.view.substr(sublime.Region(0, endPoint))
		tempText = ""
		for x in alltext:
			if x not in tempText and x != "\n":
				tempText += "SelectMore(" + hex(ord(x)) + ")" + "\n"
				pass
		tempText = tempText.rstrip('\n')
		self.view.insert(edit, endPoint, "\n\n转换结果:\n" + tempText)

FontForge精简字体

以上操作都是为了这一步,太复杂的不会搞,还是在FontForge里用图形化界面操作方便些,具体操作步骤:
1.使用FontForge打开字体文件后,点击“File-Execute Scripte”菜单;
2.在弹窗中粘贴在sublime中得到的命令文本,点击ok执行后FontForge会选中对应的字形;
3.点击“Edit-Select-Invert Selection”菜单进行反选;
4.点击“Encoding-Detach & Remove Glyphs”删除字形;
5.点击“Encoding-Remove Unused Slots”;
6.点击“File-Generate Fonts”生成字体文件即可;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值