В настоящее время я пытаюсь настроить свою среду так, чтобы я мог открыть вкладку ConEmu, и она автоматически инициализирует Far Manager и среду командной строки VS Developer.
Моя неудачная попытка была такая:
cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64_x86 & far -new_console:d:C:\My\Code
Это работает в том смысле, что он выполняет то, что я хочу, но ConEmu это не нравится, потому что он оставляет активный экземпляр cmd.exe, поэтому при попытке закрыть вкладку вы всегда получите предупреждение, что не идеально.
Если вы никогда не видели этого раньше, это то, что появляется при закрытии вкладки, если вы используете вышеуказанную задачу:
После долгих поисков я нашел эту ссылку, которая внизу содержит комментарий автора ConEmu:
Он говорит это:
Да, это работает. Но этот метод оставил cmd.exe в вашем дереве рабочих процессов.
Другой способ - запустить vcvarsall.bat из вашей оболочки (PowerShell или Far Manager) и экспортировать измененную среду из cmd в родительский процесс. Преимущество - вы можете установить различные настройки во время выполнения.
Описание: https://code.google.com/p/cone...
И пример команды (я использую это из Far Manager): "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86 & "% ConEmuBaseDir%\ConEmuC.exe" /export = CON
Проблема с этим однако заключается в том, что я должен выполнить эту команду вручную после запуска далеко. Я не могу найти способ автоматического запуска этой команды после инициализации Far.
Это не совсем жизнеспособное решение сделать это вручную, потому что у меня так много разных сред для настройки. Учтите, что мне нужна отдельная вкладка для каждого компилятора, который я использую (MSVC, Clang, GCC, Intel C++ - иногда несколько версий каждого и почти всегда несколько архитектур).
По сути, мне нужен способ настроить задачу так, чтобы я мог запустить пакетный файл, а затем Far (чтобы он наследовал переменные env), не оставляя висящий экземпляр cmd.exe. Или мне нужно иметь возможность настроить задачу так, чтобы я мог автоматически запускать команды (разные для каждой задачи) после запуска Far.
Я почти уверен, что будет какой-то черный магический способ сделать это, но я еще недостаточно знаком с ConEmu/Far, чтобы понять это.
Если я впаду в отчаяние, то, возможно, в конце концов напишу плагин, но я бы предпочел этого избежать, если смогу.