Emacs: установить команду компиляции для каждого буфера - PullRequest
4 голосов
/ 27 декабря 2010

Итак, предположим, у меня есть файл file.c и файл anothr.c. Я хотел бы установить команду компиляции для каждого из этих файлов отдельно, скажем: gcc -Wall -O3 -o f file.c и gcc -Wall -std=c99 -o a another.c. Как я могу установить команду gcc для этого буфера, чтобы каждый раз, когда я его открывал, он знал, как его скомпилировать? Есть что-то с директивой // -*- или что-то в этом роде? Спасибо.

Ответы [ 2 ]

4 голосов
/ 27 декабря 2010

Да, вы можете использовать директиву в файле, а также установить другое значение.Попробуйте это в одной или двух строках:

// -*- compile-command: "gcc -Wall -O3 -o f file.c" -*-

, а затем повторно загрузите файл с C-x v, чтобы настройка вступила в силу.

Иногда я устанавливаю такие вещи, как c-indent-level: 4; c-basic-offset: 4; втам тоже.

3 голосов
/ 27 декабря 2010

То, что вы ищете, называется файловые локальные переменные , или иногда просто "локальные переменные", в декларативном формате, описанном в комментарии здесь .

В дополнение к синтаксису, приведенному в ответ Дирка , вы можете написать блок «локальных переменных» в конце вашего файла:

/* Local Variables: */
/* compile-command:"gcc -Wall -O3 -o f file.c" */
/* End: */

Вы можете использовать интерактивную функцию add-file-local-variable, чтобы помочь поддерживать этот список, если вы не хотите вводить каждую запись вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...