сохранять и компилировать автоматически - PullRequest
6 голосов
/ 14 января 2010

GNU 23.1.1

Нажав кнопку F5, я могу скомпилировать свой проект. Тем не менее, я хочу расширить это, чтобы любая несохраненная работа была сохранена и затем скомпилирована.

Обычно я просто делаю C-x-s, чтобы сохранить, затем нажимаю F5. Но могу ли я добавить строку, которая будет сохранять, не спрашивая меня, хочу ли я сохранить, а затем она скомпилируется, все сделано автоматически?

; Compile program using <F5>
; Save all unsaved files here, then compile
(global-set-key [f5] 'compile)

Надеюсь, ты меня понимаешь?

Большое спасибо за любой совет,

Ответы [ 3 ]

18 голосов
/ 07 июня 2010

Поместите (setq compilation-ask-about-save nil) в .emacs для автоматического сохранения (без запроса) перед компиляцией или перекомпиляцией.

15 голосов
/ 14 января 2010

На каждом Emacs, который я использую (от 19.34 до 24), компиляция запрашивает сохранение несохраненного буфера перед продолжением. Я очень удивлен, что это не так для вас.

Так что просто M-x compile (f5 для вас) попросит сохранить несохраненный буфер.

вы можете настроить compilation-ask-about-save на nil, если вы хотите, чтобы compile безоговорочно сохранял весь буфер, или разрешить ему значение по умолчанию, отличное от nil, если вы хотите, чтобы вас спросили.

8 голосов
/ 14 января 2010

Вы можете использовать (save-some-buffers 1) для сохранения всех буферов, содержащих изменения.

Заверните его вместе с compile, например, так:

(defun save-all-and-compile ()
  (save-some-buffers 1)
  (compile compile-command))

Затем установите F5 для запуска этой функции вместо простой компиляции.

Используйте (save-some-buffers) (без аргументов), если вы предпочитаете, чтобы Emacs спрашивал вас о каждом буфере для сохранения. Кроме того, вы можете захотеть сделать команду компиляции настраиваемой, как в случае с compile ... Я оставлю это вам.


Начало работы

Вы также должны добавить (interactive), см. Полный пример ниже.

(defun save-all-and-compile ()
  (interactive)
  (save-some-buffers 1)
  (compile compile-command))
(global-set-key [f5] 'save-all-and-compile)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...