2013-08-17 12 views
5

崇高なテキスト3はすばらしく見えますが、私が切り替えを妨げている1つのアイテムは、Clipboard Commandsの互換性です。このプラグインを使用する唯一の方法は、Microsoft Word(または他のテキストエディタ)からコピーされたコンテンツを貼り付けることを基本とする「クリーンペースト」機能です。 ST3が提供するネイティブ関数を知っている人は、キーバインディングをマップすることができますか?ここでClipboardCommandは(ST2バージョンで)何をするかです:崇高なテキスト3 - きれいなペースト

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" 

もしcommandがあれば、私はその機能を素晴らしいものにすることができますが、Pythonでどのように動作するかはわかりません。助けてくれてありがとう!これのpython 3互換性を持たせるために

+0

あなたがしなければならないことは、 'clean_copy'と' clean_paste'を修正することだけです。 – Blender

+0

私は質問を理解していません – Eric

+0

明確にするために、私はこのST2プラグインをST3に移植するのが大好きですが、Python開発者ではないので、誰かが新しいキーバインドをマップする最良の方法を知っていたのか疑問に思っていましたサブライム(これは私のやり方を知っています)ですが、クラス定義をそのまま参照する代わりに 'clean_paste'を行う関数を参照しています。または、これにより問題が明確になった場合は、Miscrosoft WordからST3にクリーンなペーストを実行する方法を教えてください(すべての特殊/エンコード文字を取り除くことができます) – Zach

答えて

4

ないあまりにも多くの仕事:

# 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'<br ?/?>', '\n', data, re.I); 
    data = re.sub(r'<[^>]*>', '', data); 
    # clean htmlentities 
    data = re.sub('&([^;]+);', lambda m: unichr(html.entities.name2codepoint[m.group(1)]), data) 
    return data; 

私がリンクされたプラグインをフォークとhere

はsublime3でそれをテストし、動作しているように見えますが、なしに変更をアップロードしましたテストケース私はあなたにそれを残します。

+0

申し訳ありませんが、投稿を放棄してフォーラムに投稿しようとしていました - ありがとう! – Zach

関連する問題