从Sublime Text 2中以交互方式运行Python

use*_*097 14 python sublimetext2 sublimerepl

我已经看过这个论坛上的所有答案,但我遗漏了一些东西.我希望能够在Sublime Text 2中编辑Python文件"myfile.py"时点击Cmd+ B.

这应该打开一个Python shell,加载我的文件并返回到交互式提示符,以便我的Python脚本中的命名空间可用.

-i在构建设置中设置选项仍会关闭解释器(参见下文)

> 81
> >>>  [Finished in 0.1s]
Run Code Online (Sandbox Code Playgroud)

我下载了sublimeREPL,但我不知道如何设置-i选项.
任何帮助表示赞赏

use*_*097 11

好的,感谢sneawo提示!这是我第一次做这件事.

步骤1.创建一个插件pydev,(从Tools-> New Plugin)创建一个命令'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 }) 
Run Code Online (Sandbox Code Playgroud)

步骤2.在Preferences-> Key-Bindings-user中创建一个新的密钥绑定

{"keys": ["f5"], "command": "pydev"}

现在按下f5(在Mac上它将默认为fn+ f5)可以实现 - 它将在repl选项卡中启动python解释器,将布局设置为双窗口水平并将repl选项卡移动到下部窗口.

这是非常基本的,因为它不会检查当前布局是什么,只是将布局设置为2水平.可能会修改代码来进行一些检查,只需在现有布局中添加一个水平窗口即可.当repl选项卡关闭时,也可以删除水平缓冲区.


sne*_*awo 7

尝试更新用户键绑定:

[
    { "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"
                    } 
    }
]
Run Code Online (Sandbox Code Playgroud)