我目前使用vim和tmux来编辑我的代码。在调试过程中,我经常要:
python -i script.py
然而,经过多次编辑后,这会变得很麻烦,因为每次我都会切换到终端窗格,退出python -i会话,然后重新运行python。最糟糕的是,当我重新开始会话时,我失去了所有的python历史记录!
我想在我的.vimrc中绑定像:!python -i <current file>
这样的东西,但这并不能解决问题,因为我无法在同时测试脚本的同时编辑脚本(就像使用IDE一样)以及我得到tmux的原因)。无论如何,正在运行python -i
似乎会崩溃。
我该怎么办?
答案 0 :(得分:0)
你可以添加一个python代码来运行vim编辑器,使编辑器自动执行python代码。
import sys, tempfile, os
from subprocess import call
EDITOR = os.environ.get('EDITOR','vim') #that easy!
initial_message = "" # if you want to set up the file somehow
with tempfile.NamedTemporaryFile(suffix=".tmp") as tf:
tf.write(initial_message)
tf.flush()
call([EDITOR, tf.name])
# do the parsing with `tf` using regular File operations.
# for instance:
tf.seek(0)
edited_message = tf.read()
在“initial_message”中,你可以给出“在编辑器中运行python代码的命令” 希望这样可以正常工作。
答案 1 :(得分:0)
这可能不是你问题的答案,但我建议你使用IPython,这可能会简化你的生活。
这可以解决您的历史记录问题,因为您可以通过%logstart开启登录,然后在会话之间保留历史记录。
您还可以使用%run命令重新加载脚本。
还有一个链接vim和Ipython的插件:https://github.com/ivanov/vim-ipython但是我从未使用它,它可能值得一试。