[1] +停止vim foo.py错误,如何解决这个问题?

时间:2013-09-30 12:18:47

标签: python vim

每当我从vim命令运行python程序时都会这样:

:!python foo.py

运行程序后,vim将停止并说出:

[1]+  Stopped                 vim foo.py

我不知道为什么会出现这样的错误。 我没有在其他应用程序中使用foo.py文件,但它刚刚发生。

如果您需要,这是我的.exerc文件内容:

set nu
syntax on
filetype on
filetype indent on
filetype plugin on
set tabstop=4
set shiftwidth=4
set softtabstop=4
set shellcmdflag=-ic

当我在运行它之后打开foo.py时,vim说:

E325: ATTENTION
Found a swap file by the name ".foo.py.swp"
          owned by: me   dated: Mon Sep 30 21:05:52 2013
         file name: ~foo/bar/foo.py
          modified: no
         user name: me   host name: hostname
        process ID: 3635 (still running)
While opening file "foo.py"
             dated: Sat Sep 28 23:04:15 2013

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.
    Quit, or continue with caution.

(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r foo.py"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".foo.py.swp"
    to avoid this message.

Swap file ".foo.py.swp" already exists!

谢谢。 (我使用的是mac os x)

2 个答案:

答案 0 :(得分:4)

话说:

set shellcmdflag=-ic

导致vim在尝试执行shell命令时打开交互式shell。

为了打开交互式 shell,它暂停 vim进程。这解释了您正在观察的行为([1]+ Stopped ...Found a swap file ...)。

(您可以说fg从这样创建的shell中恢复编辑器。)

如果删除

set shellcmdflag=-ic

来自您的.exerc,您不会发现此问题。

答案 1 :(得分:0)

为了执行你的python脚本,必须暂停Vim,以便脚本可以在你的shell中运行。

你看到的不是错误,你的shell有助于告诉你Vim被暂停(或“背景”或“在后台”或......“停止”)。而且这显然是第一个也是唯一一个被暂停的计划。

要返回Vim,只需在提示符下输入fgforeground)。

所以,基本上,你得到的是正常的和预期的。