python – Sublime Text 3 – Clean Paste

前端之家收集整理的这篇文章主要介绍了python – Sublime Text 3 – Clean Paste前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Sublime Text 3看起来很棒,但是一个阻止我切换的项目是Clipboard Commands的兼容性.我唯一使用这个插件的是“clean_paste”功能,它基本上粘贴了从Microsoft Word(或任何其他文本)复制的内容编辑)去掉它通常带来的有趣人物.有没有人知道ST3提供的本机功能,我可以将键绑定映射到?这是ClipboardCommand所做的(在ST2版本中):

class ClipboardCommandsPastePlainText(sublime_plugin.TextCommand):
    def run(self,edit):
        copy(clean_paste(clipboard()))
        self.view.run_command('paste')

一般来说可能更多的是Python问题,但你也可以创建自己的键绑定,这个基本上只引用该命令:

"caption": "Clipboard: Paste Plain Text","command": "clipboard_commands_paste_plain_text"

因此,如果命令是我可以将该函数放入那个很好的命令,但不确定它在Python中是如何工作的.谢谢你的帮助!

最佳答案
没有太多工作使这个python 3兼容:

# coding=utf8
import sublime_plugin,sublime,re,html

def clipboard():
    return sublime.get_clipboard()

def copy(data):
    sublime.set_clipboard(data)

# to transfer data to sublime text
def clean_paste(data):
    # clean word
    data = str(data)
    data = data.replace(u'”','"').replace(u'“','"').replace(u'’',"'")
    data = data.replace('________________________________________','\n')
    # clean htmlentities
    data = re.sub('&([^;]+);',lambda m: unichr(html.entities.name2codepoint[m.group(1)]),data)
    return data;

# to transfer data from sublime text
def clean_copy(data):
    # clean html
    data = str(data)
    data = re.sub(r'

我已经分叉了链接插件上传了更改here

在sublime3中测试它似乎工作,但没有测试用例我将留给你.

猜你在找的Python相关文章