1

OS X ユーザーが計算のために選択したテキストを R64.app に送信できるようにする Sublime Text 2 用の単純なプラグインを作成しようとしています。これまでのところ、次のものがあります。

import sublime, sublime_plugin, os
class send2rCommand(sublime_plugin.TextCommand):
    def run(self,blah):
        os.system("""osascript -e 'tell application "R64" to activate'""")
        for sel in self.view.sel():
            sel_text = self.view.substr(sel)
            os.system('''osascript -e 'on run(args)' -e 'tell application "R64" to cmd (item 1 of args)' -e 'end run' -- "'''+sel_text+'''"''')

ただし、選択したテキストに文字が含まれている場合、これは失敗するようです$( で頻繁に発生しRます)。また、関数定義の一部を削除するとコマンドが失敗する理由がわからないため、何かを誤解していると思われrunます (Python でエラーが発生します) 。,blahrun

4

1 に答える 1

0

解決策は、osascriptに送信する前に$文字をに置き換える必要があるようです。\$

import sublime, sublime_plugin, os
class send2rCommand(sublime_plugin.TextCommand):
    def run(self,blah):
        os.system("""osascript -e 'tell application "R64" to activate'""")
        for sel in self.view.sel():
            sel_text = self.view.substr(sel)
            sel_text = sel_text.replace('$','\$')
            os.system('''osascript -e 'on run(args)' -e 'tell application "R64" to cmd (item 1 of args)' -e 'end run' -- "'''+sel_text+'''"''')
于 2012-09-14T14:37:25.550 に答える