2014-01-03 2 views
1

В новых окнах 7 команды сборки vim фактически не запускаются, но команда gvim echo пыталась запустить.gvim на windows 7 - vimrun.exe не запускает команду

в 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... 

Как я могу запустить команды vim, подобные этим на окнах 7? Раньше у меня не было проблем с окнами xp.

Он работает с несколькими программами, такими как diff.exe и другими.

Дополнительная информация является его недавно скомпилированная версия Vim с питоном и поддержкой рубинового построен в.

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 [email protected] 
Huge version with GUI. 

Спасибо заранее,

ответ

2

В --login -c аргументы, передаваемые cmd.exe не правы. Это должно быть /c. Что-то меняет 'shellcmdflag'. Кроме того, эта версия Vim 7.4 должна обернуть команду dir в круглые скобки, а не кавычки, поэтому флаг 'shellxquote' выключен.

Это связано либо с явной неправильной конфигурацией (в ~/.vimrc, либо с помощью плагина), либо потому, что различные эвристики, которые использует Vim для обнаружения правильной оболочки оболочки, терпят неудачу. Проверьте с

:verbose set shell? shellcmdflag? shellxquote? 

и читать :help 'shell', чтобы узнать больше о эвристики.

+0

Это было именно оно. У меня были некоторые недопустимые вещи в моем _vimrc из-за игры с cygwin некоторое время назад. Поскольку я не использовал diff.exe на ежедневной основе, я думал, что это связано с Windows 7. Спасибо за вашу помощь. – joefromct

+1

А, отлично! Когда вы будете «играть» в следующий раз, лучше обернуть эти попытки в 'if has ('win32unix')' условных (для Cygwin). –

Смежные вопросы