在新的Windows 7上,vim命令实际上并没有运行,但是gvim echo是试图运行的命令。
在vim中,命令:!dir
打开一个vimrun.exe终端并显示以下内容:
C:\WINDOWS\system32\cmd.exe --login -c "dir"
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\USERNAME>
窗口就像这样,直到我输入exit
并将控制权返回给vim。
C:\Users\USERNAME>exit
Hit any key to close this window...
我怎样才能在Windows 7上运行这样的vim命令?我以前在Windows XP上没有任何问题。
它影响多个程序,例如diff.exe和其他程序。
附加信息是最近编译的vim版本,内置了python和ruby支持。
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 18 2013 13:15:06)
MS-Windows 32-bit GUI version with OLE support
Compiled by J4ROCH@ACEINA
Huge version with GUI.
提前致谢,
答案 0 :(得分:2)
传递给--login -c
的{{1}}参数是错误的。它必须是cmd.exe
。有些东西正在改变/c
。此外,Vim 7.4版本应将'shellcmdflag'
命令括在括号中,而不是引号,因此dir
标志也会关闭。
这可能是由于明确的错误配置(在'shellxquote'
中,或在插件中),或者是因为Vim用于检测正确的shell环境的各种启发式失败。检查
~/.vimrc
并阅读:verbose set shell? shellcmdflag? shellxquote?
以了解有关启发式的更多信息。