Emacs: установить команду компиляции для каждого буфера
Итак, предположим, у меня есть файл file.c и файл anothr.c. Я хотел бы установить команду компиляции для каждого из этих файлов отдельно, скажем: gcc -Wall -O3 -o f file.c
, а также gcc -Wall -std=c99 -o a another.c
, Как я могу установить gcc
команда для этого буфера, чтобы каждый раз, когда я его открывал, он знал, как его скомпилировать? Есть ли что-то с // -*-
директива или что-то в этом роде? Благодарю.
2 ответа
Да, вы можете использовать директиву в файле, а также установить другое значение. Попробуйте это в первой или второй строке:
// -*- compile-command: "gcc -Wall -O3 -o f file.c" -*-
а затем перезагрузите файл с C-x v
так что настройка вступит в силу.
Я иногда ставлю такие вещи как c-indent-level: 4; c-basic-offset: 4;
и там тоже.
То, что вы ищете, называется файловыми локальными переменными, или иногда просто "локальными переменными", в декларативном формате, описанном здесь.
В дополнение к синтаксису, приведенному в ответе Дирка, вы можете написать блок "локальные переменные" в конце вашего файла:
/* Local Variables: */
/* compile-command:"gcc -Wall -O3 -o f file.c" */
/* End: */
Вы можете использовать интерактивную функцию add-file-local-variable
чтобы поддержать этот список, если вы не хотите вводить каждую запись вручную.