3

Из командной строки Windows 7:

ConEmu.exe /cmd "C:\Program Files\Git\bin\sh.exe" --login -i && exit

открывает ConEmu (или новую вкладку в нем), вошедшую в Git Bash для текущего каталога, и (очень быстро) выходит из окна командной строки, все хорошо.

От gVim:

:silent !ConEmu.exe /cmd "C:\Program Files\Git\bin\sh.exe" --login -i
  1. если ConEmu уже запущен, открывает новую вкладку, зарегистрированную в Git Bash для каталога буфера, и выходит из промежуточного окна командной строки и возвращает меня в мой текущий буфер, все хорошо.
  2. если ConEmu не запущен, он открывается и входит в Git Bash, как указано выше, но промежуточное окно командной строки остается в захваченном состоянии, что требует от меня его завершения, чтобы разморозить gVim. (Добавление $$ exit к вышеуказанной команде gVim не помогает.)

Вопрос: Как я могу исправить второй случай gVim, чтобы окно командной строки, вызываемое gVim, автоматически закрывалось, как в первом случае gVim?


Дополнительная информация о gVim (в ответ на @Maximus):

VIM - Vi IMproved 7.4 (10 августа 2013 г., составлено 29 августа 2014 г. 07:03:32)

Sysinternals ' Process Monitor Filter ' для Operation Process Start обнаруживает, что эта иерархия команд, все помеченные как "(ConEmu.exe)", запускаются :!ConEmu:

  1. "C:\Program Files\vim\vim74\vimrun" C:\windows\system32\cmd.exe /c
  2. C:\windows\system32\cmd.exe /c C:\windows\system32\cmd.exe /c
  3. C:\windows\system32\cmd.exe /c

vimrun.exe отсутствует в% PATH%.


Альтернативная попытка от gVim, используя win32-!начать:

Дон Реба из Vim Wikia объясняет:

если вы введете команду, как:!calc (чтобы запустить calc.exe для калькулятора Windows), Vim откроет окно оболочки, а затем запустит новое окно calc из этой оболочки. Когда calc закрывается, появляется приглашение нажать любую клавишу, чтобы закрыть это окно ..., и Vim останавливается до тех пор, пока не будет нажата клавиша. Но калькулятор - это программа с графическим интерфейсом, поэтому он запускается в новом процессе, в новом окне. Итак, если вы хотите асинхронно запускать программу с графическим интерфейсом, например, калькулятор, вы можете просто ввести:!начать расчет

Итак, я попробовал:

!start ConEmu.exe /cmd "C:\Program Files\Git\bin\sh.exe" --login -i && exit

- который не захватывает gVim и открывает новую вкладку ConEmu в Git в рабочем каталоге gVim, но не может войти в систему, сообщая о sh.exe": &&: No such file or directory , затем следует:

Команда для выполнения: «C:\Program Files\Git\bin\sh.exe» --login -i && exit
ConEmuC: корневой процесс был жив менее 10 секунд, ExitCode = 127.
Нажмите Enter или Esc, чтобы закрыть консоль ...

0