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

Sam*_*aiT 5 python vim

每当我从 vim 命令运行 python 程序时,如下所示:

:!python foo.py
Run Code Online (Sandbox Code Playgroud)

运行程序后,vim 会停下来并说:

[1]+  Stopped                 vim foo.py
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会出现这样的错误。我没有在其他应用程序中使用 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
Run Code Online (Sandbox Code Playgroud)

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

E325:注意
找到一个名为“.foo.py.swp”的交换文件
          所有者:我 日期:2013 年 9 月 30 日星期一 21:05:52
         文件名:~foo/bar/foo.py
          修改:无
         用户名:me 主机名:主机名
        进程ID:3635(仍在运行)
打开文件“foo.py”时
             日期: 2013 年 9 月 28 日星期六 23:04:15

(1) 另一个程序可能正在编辑同一个文件。
    如果是这种情况,请小心不要最终出现两个问题
    进行更改时同一文件的不同实例。
    退出,或谨慎继续。

(2) 该文件的编辑会话崩溃。
    如果是这种情况,请使用“:recover”或“vim -r foo.py”
    恢复更改(请参阅“:帮助恢复”)。
    如果您已经这样做了,请删除交换文件“.foo.py.swp”
    以避免出现此消息。

交换文件“.foo.py.swp”已经存在!

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

dev*_*ull 5

说:

set shellcmdflag=-ic
Run Code Online (Sandbox Code Playgroud)

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

为了打开交互式shell,它会挂起vim进程。这解释了您所观察到的行为(两者[1]+ Stopped ...) 。Found a swap file ...

(您可以说fg从由此创建的 shell 恢复编辑器。)

如果您删除

set shellcmdflag=-ic
Run Code Online (Sandbox Code Playgroud)

从你的来看.exerc,你不会观察到这个问题。