Я пробовал так много разных подходов к этому, что в итоге я не использовал emacs для настройки моей командной среды компиляции.
Что я делаю сейчас, так это создаю файл run_helper.sh, который просто инициализирует чистую среду изатем использует exec $*
для выполнения команды, переданной в качестве аргумента run_helper.sh
Этот run_helper.sh
обычно специфичен для проекта, но я сохраняю шаблон, который использую для запуска при создании нового проекта.
Затем я просто запускаю compile
из emacs, например, bash run_helper.sh rspec path/to/tests
.
Если я использую это для запуска тестов ruby, мой помощник инициализирует RVM для использования правильных ruby и gemset.Если я использую какой-то другой язык, он может просто экспортировать необходимые переменные окружения или выполнить какую-то другую инициализацию, но таким образом я могу сделать это в скрипте bash, вместо того, чтобы всегда связываться с путями emacs и elisp каждый раз, когда я запускаю новый проект.1014 *
Вот пример run_helper.sh
файла
#!/bin/bash
cd /Users/simao/Documents/sp
export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"
source "$HOME/.rvm/scripts/rvm" # This loads the proper ruby and gemset from .rvmrc
export RAILS_ENV=test
exec $*
Это также ускоряет мои тесты, потому что в моем .zshrc
есть много вещей, которые я не хочу загружать простозапустить несколько тестов.