Могу ли я изменить команду компиляции emacs по умолчанию?

Emacs по умолчанию выполняет команду make -k при запуске compile. Тем не менее, я почти никогда не думаю, что полезно, чтобы make продолжался после ошибок, поэтому я всегда удаляю флаг -k. Есть ли способ изменить значение по умолчанию в моем .emacs, чтобы он просто make?

Ответ 1

(setq compile-command "make" )

или подобное в вашем .emacs должно быть достаточно.

Для получения дополнительной информации введите

C-h f compile

который описывает, какие переменные используются при вызове M-x compile.

В нем вы увидите, что он вызывает команду компиляции и

C-h v compile-command

сообщает об этом по умолчанию "make -k". Все вышеизложенное является упрощением, но вся информация должна быть в этих командах, если вам нужно копать дальше.

Ответ 2

Так как мне нужны разные компиляторы для разных режимов, я использую следующий фрагмент кода (здесь показан для javascript):

(require 'compile)
(add-hook 'js-mode-hook
          (lambda ()
            (set (make-local-variable 'compile-command)
                 (format "jshint %s" (file-name-nondirectory buffer-file-name)))))

Это запускает "jshint" в качестве моей команды компиляции. Затем я могу добавить крючки на другие языки и настроить каждый в соответствии с моими потребностями.