sublime text 开发自定义插件实现复杂文本处理

需求:

将以下文本数据处理后拼接为SQL语句,一次处理,批量执行。

image

 

1、新建sublime text插件

image

 

2、编写插件读取当前标签页的所有数据,逐行处理数据

 

#!/usr/bin/python
# -*- coding: utf-8 -*-
# cp@chenpeng.info
#

import sublime
import sublime_plugin
from pprint import pprint
import os
import sys
import json

class ZhizuzhefuCommand(sublime_plugin.TextCommand):
    ”’ view.run_command(‘zhizuzhefu’) ”’

    def run(self, edit):

        pprint([‘view.file_name() ‘, self.view.file_name()])

        # whole region process start
        whole_region = sublime.Region(0, self.view.size())
        if whole_region.empty():
            return

        contents = self.view.substr(whole_region)
        contents = contents.replace(‘\r\n’, ‘\n’).replace(‘\r’, ‘\n’)
        lines = contents.split(‘\n’)

        for i,line in enumerate(lines):

            id,title = line.split(‘;’)
            value = json.dumps({id:title})
            line = “UPDATE gp_resource_list SET resource_value='{}’ WHERE resource_name=’adpid’ AND resource_value like ‘%{}%';”.format(value.replace(‘\\’, ‘\\\\’),id)

            lines[i] = line

        contents = ‘\n’.join(lines)
        self.view.replace(edit, whole_region, contents)
        # whole region process end
#

逐行将文本替换为SQL语句,批量修改字段值

替换的格式如下:

UPDATE gp_resource_list SET resource_value='{}’ WHERE resource_name=’adpid’ AND resource_value like ‘%{}%';

 

把数据替换好以后,将数据赋值给当前视图。

保存插件的源码,编辑器会自动加载此插件。

这个过程可以任意按照自己的需求修改,会一点python脚本语言即可。

参考:sublime text API

http://www.sublimetext.com/docs/3/api_reference.html#sublime.View

 

3、执行插件

Ctrl+~调出命令执行窗口:

view.run_command(‘zhizuzhefu’)

 

4、执行结果

image

 

sublime text 编辑器的插件可拓展性强,支持自己编写复杂功能插件,开发必备!

About 智足者富

http://chenpeng.info

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>