Можно ли заставить gVim выполнять внешние команды в cygwin по умолчанию?

Можно ли заставить gVim (на windows) выполнять внешние команды в cygwin по умолчанию? т.е.!ps откроет терминал cygwin, показывающий текущие запущенные процессы?

1 ответ

Решение

Во-первых, вы должны указать Vim запустить программу bash вместо cmd.exe, а bash необходимо запустить как оболочку входа в систему, чтобы он считывал профили / сценарии входа и правильно настраивал среду (PATH и т. Д.).

Вам также необходимо изменить параметр, который вводит параметры командной строки для оболочки:

:set shell=C:\Cygwin\bin\bash.exe\ -login
:set shellcmdflag=-c

Если ваши команды cygwin требуют аргументов, вам, вероятно, следует также

:set shellquote=\"

чтобы гарантировать, что вся команда будет заключена в кавычки, иначе оболочка получит только первое слово и проигнорирует остальные.

Другие вопросы по тегам