[英]sublime text 3 plugin for removing quotes
我正在嘗試將此插件從Sublime Text 2轉換為Sublime Text 3,但我一直遇到此錯誤
File "/Users/macintoshhd/Library/Application Support/Sublime Text 3/Packages/magiclessquotesjon.py", line 17, in on_pre_save
edit = view.begin_edit()
TypeError: begin_edit() missing 2 required positional arguments: 'edit_token' and 'cmd'
我知道API在版本之間有所變化,並且有移植指南 ,但是我仍然不確定如何獲得正確的TextCommand或如何使用它。
此處的插件代碼:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = "Daryl Tucker"
import sublime, sublime_plugin
class RemoveMagicFromMagic(sublime_plugin.EventListener):
def on_pre_save(self, view):
replacements = [
[u'[’‘`]{1}',u'\''],
[u'[“”]{1}',u'"'],
[u'[…]{1}',u'...'],
[u'[—]{1}',u'---'],
[u'[–]{1}',u'--'],
[u'[•]{1}',u'*'],
[u' & ',u' & '],
]
edit = view.begin_edit()
for replacement in replacements:
x = view.find_all(replacement[0])
for position in x:
view.replace(edit, position, replacement[1])
view.end_edit(edit)
能夠通過額外的回調使其工作。
class RemoveSmartQuotesCommand(sublime_plugin.TextCommand):
def run(self, edit, user_input=None):
self.edit = edit
replacements = [
[u'[’‘`]{1}',u'\''],
[u'[“”]{1}',u'"'],
[u'[…]{1}',u'...'],
[u'[—]{1}',u'---'],
[u'[–]{1}',u'--'],
[u'[•]{1}',u'*'],
[u' & ',u' & '],
]
for replacement in replacements:
x = self.view.find_all(replacement[0])
for position in x:
self.view.replace(edit, position, replacement[1])
class RemoveSmartQuotesWhenSaving(sublime_plugin.EventListener):
def on_pre_save(self, view):
view.run_command('remove_smart_quotes')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.