问题
whenever I run a python program from vim command like this:
:!python foo.py
after running the program, vim will stop and say this:
[1]+ Stopped vim foo.py
I don't know why there is such an error. I don't use the foo.py file in other application, but it just happened.
In case you need, this is my .exerc file contents:
set nu
syntax on
filetype on
filetype indent on
filetype plugin on
set tabstop=4
set shiftwidth=4
set softtabstop=4
set shellcmdflag=-ic
when I open the foo.py after running it, vim says this:
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!
Thank you. ( I am using mac os x )
回答1:
Saying:
set shellcmdflag=-ic
causes vim
to open an interactive shell upon trying to execute a shell command.
In order to open an interactive shell, it suspends the vim
process. That explains the behaviour (both [1]+ Stopped ...
and Found a swap file ...
) you're observing.
(You can say fg
to resume the editor from the shell thus created.)
If you remove
set shellcmdflag=-ic
from your .exerc
, you wouldn't observe this issue.
回答2:
In order to execute your python script, Vim must be suspended so that the script can be run in your shell.
What you see is not an error, it's your shell helpfully telling you that Vim is suspended (or "backgrounded" or "in the background" or… "stopped"). and that it's apparently the first and only program to be suspended.
To get back to Vim, just type fg
(for foreground
) at the prompt.
So, basically, what you get is both normal and expected.
来源:https://stackoverflow.com/questions/19094122/1-stopped-vim-foo-py-error-how-to-fix-this