3

Это тесно связано с решением другого моего вопроса: как вызвать gvim для Windows в среде Windows из Cygwin?

Теперь я обнаружил, что предоставление explorer.exe 'C:\Program Files (x86)\Vim\vim73\gvim.exe' в командной строке Cygwin правильно открывает Windows 'gVim в контексте Windows. Я написал функцию gvim в моем .bashrc, которая выполняет вышеуказанную команду при вызове без аргументов. Однако я хотел бы знать, как я могу передать аргументы gVim, если функция вызывается с аргументами. Попытка explorer.exe 'C:\Program Files (x86)\Vim\vim73\gvim.exe' D:\myfile.txt просто открывает проводник Windows на странице библиотек, поэтому этот прямой синтаксис не работает, но я не может найти правильный способ передачи этих аргументов.
Поиск в Google дает только список переключателей для explorer.exe, но ничего не говорит о передаче аргументов исполняемым файлам, выполняемым с explorer.exe.

Изменить: Обратите внимание, что я запускаю это из Cygwin, и я попробовал многие из более простых решений, прежде чем приземлиться на использование explorer.exe , как описано в вопросе, связанном в верхней части. cygstart и cmd.exe /c оба оставляют остатки среды Cygwin в открытом gVim, что вызывает некоторые проблемы, упомянутые там.

1 ответ1

1

Лучший способ, который я нашел для достижения этой цели, - создать пакетный файл, содержащий вызов исполняемого файла с параметрами, а затем запустить пакетный файл с помощью explorer.exe. В этом случае пакетный файл выполняется в контексте процесса проводника, и все, что он запускает, остается в том же контексте. Это означает создание пакетного файла, назовем его c:\activate.bat и поместим в этот файл вызов C:\Program Files (x86)\Vim\vim73\gvim.exe' D:\myfile.txt . Когда файл существует, его можно вызвать с помощью explorer.exe %windir%\explorer.exe c:\activate.bat . В моем случае я также удалил файл позже, но это не обязательно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .