Sublime Text3配置在可交互环境下运行python快捷键
安装插件
在Sublime Text3下面写代码感觉很不错,但是写Python的时候遇到了一些问题。
用Sublime Text3打开python文件,或者在Sublime Text3下写好python代码,使用快捷键ctrl+b就可以运行了,会在当前窗口的下方出现运行的结果。比如
print("hello world!")
但是,要是使用了input这类需要交互的函数,ctrl+b运行就会出现错误
print("hello world!")
x = input("please input a string :")
print(x)
运行结果
这个问题可以通过安装一个插件sublimeREPL解决
在已经安装了包管理器的前提下(如果没有安装可以看这里的”安装包管理器”部分),按ctrl+shift+p快捷键呼出一个输入框,输入Install Package,回车,在新出现的输入框里输入SublimeREPL,在下面的选择列表中选中回车就会开始安装,一般几秒钟就能装完。
在刚刚的python文件的界面里点击上方菜单栏的tools->sublimeREPL->python->python run current file,这时候就像IDLE一样,会弹出一个新的窗口,而且是可交互的,可以输入
设置快捷键
但是每次都要去选择tools->sublimeREPL->python->python run current file这么一长串肯定是很让人头疼的,就想着能不能设置快捷键来运行。因为以前使用IDLE写python,所以就打算配成F5运行。
我们知道,Sublime Text是通过json文件进行设置的。我们打开preferences->Key Binding-Default就能看到原来的快捷键的设置,是json格式的。
打开preferences->Key Binding-User,按照上面的格式重写需要设置的快捷键的的相关属性,就能覆盖默认设置。
但是设置的格式不容易看懂,可以参考非官方文档
发现可以把”command”设为”run_macro_file” ,”args”设为录制的宏的文件名,就可以快捷地调用这个宏。但是这个尝试失败了,可能是因为
Note that the macro buffer will remember only the latest recorded macro. Also, macros only record commands sent to the buffer: window-level commands, such creating a new file, will be ignored.
宏不能创建新窗口之类的。
后来折腾了好久,在网上找到相关的内容,研究出了解决方案
-
打开C:\Users\xxx(your name)\AppData\Roaming\Sublime Text 3\Packages\SublimeREPL\config\Python,根据自己的情况调整具体路径。AppData可能是隐藏文件夹,要先设置隐藏文件夹可见才找得到。打开Main.sublime-menu,看到里面也是json格式的。观察一下就发现这对应的刚好就是tools->sublimeREPL->python->下的几个选项。caption对应的就是显示的名字。
-
打开刚刚提到的preferences->Key Binding-User,写入以下内容
[ { "keys": ["f5"], "caption": "SublimeREPL:Python", "command": "run_existing_window_command", "args": { "id": "repl_python_run", "file": "config/Python/Main.sublime-menu" } }, ]
可以看出就是调用了id是repl_python_run的现有的窗口命令。repl_python_run是和前面Main.sublime-menu里的内容相对应,就是tools->sublimeREPL->python->python run current file的id
这样,就完成了Sublime Text3类似IDLE按F5键在可交互环境下运行python文件的配置