Как Emacs узнает, какой файл я хочу скомпилировать?

#emacs #compilation

#emacs #Сборник

Вопрос:

Я использую emacs для всего, и у меня часто есть несколько разных проектов, открытых в буферах в фоновом режиме. Часто для этого требуется открыть много файлов с одинаковыми именами (например, makefiles). Когда M-x compile я использую текущий буфер, как Emacs узнает, к какому файлу я обращаюсь?

Например, я работаю над большим проектом на SML. Компиляция запускается с помощью running sml sources.cm , который вызывает диспетчер компиляции. У меня открыто несколько sources.cm файлов, но Emacs выбирает тот, который находится в нужном каталоге для файла, с которым я имею дело, и это не дает мне возможности sml sources.cm<2> , даже если бы я захотел. В то же время я могу оставаться в своем текущем буфере и вызывать M-x compile tsc App.ts запуск компиляции для другого проекта в Typescript, который находится в совершенно другом каталоге.

В какой среде работает M-x compile команда?

Ответ №1:

Каждый буфер emacs имеет свой собственный default-directory , и именно там compile-command выполняется.

Комментарии:

1. Ах, я вижу, что на самом деле он предсказывает меньше, чем я думал. Это имеет больше смысла. Спасибо.