私はこのフォーラムですべての答えを見てきましたが、何かが足りません。叩けるようになりたい Cmd+B Sublime Text2のPythonファイル "myfile.py"の編集中。
これにより、ファイルをロードしてインタラクティブプロンプトに戻るPythonシェルが開き、Pythonスクリプトの名前空間が使用可能になります。
ビルド設定で-i
オプションを設定しても、インタープリターは閉じます(以下を参照)
> 81
> >>> [Finished in 0.1s]
ダウンロードしましたsublimeREPLですが、-i
オプションの設定方法がわかりません。
どんな助けでも大歓迎です
わかりました、ヒントをくれたsneawoに感謝します!これが私の最初のカットです。
手順1.コマンド「pydev」を作成するプラグインpydevを([ツール]-> [新しいプラグイン]から)作成します。
import sublime, sublime_plugin
class PydevCommand(sublime_plugin.WindowCommand):
def run(self):
self.window.run_command('set_layout', {"cols":[0.0, 1.0], "rows":[0.0, 0.5, 1.0], "cells":[[0, 0, 1, 1], [0, 1, 1, 2]]})
self.window.run_command('repl_open',{"type": "subprocess",
"encoding": "utf8",
"cmd": ["python2.7", "-i", "-u", "$file"],
"cwd": "$file_path",
"syntax": "Packages/Python/Python.tmLanguage",
"external_id": "python2.7"
})
self.window.run_command('move_to_group', { "group": 1 })
ステップ2. [設定]-> [キー-バインディング-ユーザー]で新しいキーバインディングを作成します
{"keys": ["f5"], "command": "pydev"}
今押す f5 (Macでは fn+f5 デフォルトでは)トリックを実行します-replタブでpythonインタープリターを起動し、レイアウトを2ウィンドウ水平に設定し、replタブを下のウィンドウに移動します。
これは、現在のレイアウトが何であるかをチェックせず、単にレイアウトを2水平に設定するという点で非常に基本的です。おそらくコードを整えてチェックを行い、既存のレイアウトに水平ウィンドウを追加するだけです。また、replタブが閉じているときに水平バッファを削除するとよいでしょう。
ユーザーのキーバインドを更新してみてください。
[
{ "keys": ["super+shift+r"], "command": "repl_open",
"caption": "Python",
"mnemonic": "p",
"args": {
"type": "subprocess",
"encoding": "utf8",
"cmd": ["python", "-i", "-u", "$file"],
"cwd": "$file_path",
"syntax": "Packages/Python/Python.tmLanguage",
"external_id": "python"
}
}
]
@ user1936097による回答に簡単な編集を追加したいと思いました。
アイデアをコピーしましたが、代わりにIPythonをロードしたいと思いました(コードはそのままで、標準のPythonをロードできます)。交換しました...
self.window.run_command('repl_open',{"type": "subprocess",
"encoding": "utf8",
"cmd": ["python2.7", "-i", "-u", "$file"],
"cwd": "$file_path",
"syntax": "Packages/Python/Python.tmLanguage",
"external_id": "python2.7"
})
と...
self.window.run_command('repl_open', {
"type": "subprocess",
"encoding": "utf8",
"autocomplete_server": true,
"cmd": ["python","-u","${packages}/SublimeREPL/config/Python/ipy_repl.py"],
"cwd": "$file_path",
"syntax": "Packages/Python/Python.tmLanguage",
"external_id": "python",
"extend_env": {
"PYTHONIOENCODING": "utf-8",
"SUBLIMEREPL_EDITOR": "$editor"}
})
しかし、それはうまくいきませんでした。
"autocomplete_server": true
という行が問題のようです。削除するとコードは実行されましたが、IPythonは閉じた状態で開きました。私がそれを残した場合、何も起こりませんでした。
私はついにファイル/SublimeREPL/config/Python/Default.sublime-commands
にあるコマンドを借りて、思いついた...
self.window.run_command('run_existing_window_command', {
"id": "repl_python_ipython",
"file": "config/Python/Main.sublime-menu"
})
これにより、最終的なプラグインコードが作成されました。
import sublime, sublime_plugin
class PydevCommand(sublime_plugin.WindowCommand):
def run(self):
self.window.run_command('set_layout', {"cols":[0.0, 1.0], "rows":[0.0, 0.5, 1.0], "cells":[[0, 0, 1, 1], [0, 1, 1, 2]]})
self.window.run_command('run_existing_window_command', {
"id": "repl_python_ipython",
"file": "config/Python/Main.sublime-menu"
})
self.window.run_command('move_to_group', { "group": 1 })
元の投稿に示されているように、これをキーバインドに割り当てると、標準のPythonの代わりにIPythonが読み込まれます。
答えはあなたのアプローチよりもはるかに簡単です。新しいビルド「プロファイル」(ビルドシステム)を定義するだけで、オプション_-u
_を_-ui
_に変更することを除いて、デフォルトのPythonビルドを正確にキャプチャします。
{ "cmd": ["C:\\python33\\python.exe", "-ui", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python" }