:!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)
答案 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,只需在提示符下输入fg
(foreground
)。
所以,基本上,你得到的是正常的和预期的。