如何在IPython交互模式下以更直接方式调用编辑器?
更直接在IPython中打开编辑器的方法
嘿,这个需求太常见啦!你现在用subprocess.run的方法虽然可行,但IPython本身就提供了更简洁顺手的方式,不用绕到subprocess模块~
这里给你推荐两种最直接的实现方式:
1. 使用IPython内置的%edit魔法命令
这是最贴合IPython工作流的方式,直接输入:
In [1]: %edit Person.py
执行后会直接打开你的默认编辑器(系统默认或者你配置过的编辑器,比如vim)编辑Person.py。而且最方便的是,当你保存退出编辑器后,IPython会自动把文件里的代码加载到当前会话中,不管是修改模块还是写脚本都特别顺手。
如果你的默认编辑器不是vim,想临时指定的话,可以先在IPython里配置:
In [2]: %config IPythonWidget.editor = 'vim'
或者提前在系统环境变量里设置EDITOR=vim,这样所有需要调用编辑器的工具都会默认用vim。
2. 用!直接执行shell命令
IPython里的!前缀可以直接执行shell命令,写法比subprocess简洁太多:
In [3]: !vim Person.py
这个和你原来的subprocess方法本质一样,但省去了调用subprocess模块的代码,输入起来更快,执行后也会返回命令的完成状态。
小总结
如果是想编辑代码并快速在IPython中测试,优先选%edit,它和IPython的集成度更高;如果只是单纯打开编辑器修改文件,!vim Person.py足够简单直接。
内容的提问来源于stack exchange,提问作者Wizard
相关产品推荐
相关产品推荐

