1

有时我需要在 shell 中测试我的 python 代码,所以我必须编辑代码,保存并退出并运行代码。如果出现任何问题,请重新打开文件以修改我的代码。然后保存并退出....我想知道VI中是否有一个方便的功能可以轻松测试VI中的代码?

4

3 回答 3

2

不,但如果你有 Ipython,它有一个方便的魔法,叫做 %autoreload。

例如:test.py

class A(object):
  def __init__(self):
     self.a = 0

然后我运行 ipython -i test.py

In [2]: a=A()

In [3]: a.a
Out[3]: 0

糟糕,最初的“a”值应该是 21……我最好解决这个问题。

class A(object):
  def __init__(self):
     self.a = 21

现在在 ipython 中我这样做了,这又是在 IPYTHON 的同一实例中:

%load_ext autoreload
%autoreload

这将为我将 A 类对象重新加载到 python 中,所以现在。

In [4]: a.a
Out[4]: 21

这在调试大型类时真的很有帮助,而且只做很小的改变。我的工作流程通常包括打开两个终端窗口,一个使用 vim 来编辑 .py 文件,一个运行 ipython 来测试和调试更改。

于 2013-09-13T17:48:36.950 回答
0

当然,我一直这样做。在你的 vimrc 中放:

command R ! python ./%

然后 :R 将执行 python 代码。我也有这个用于调试,尽管它不像我希望的那样有用:

command D ! python -m ipdb ./%

它在调试中运行它,但我们的环境通常不会在同一实例中永久重新运行。

于 2013-09-13T17:52:33.677 回答
0

我可能会错误地解释您的问题,但这是我的建议。也许您可以打开多个终端。在一个终端上,编写/编辑您的代码并保存。我假设使用 ':w' 并让终端保持打开状态。然后在另一个终端上,编译你的代码。

于 2013-09-13T17:56:59.143 回答