Процесс компиляции в emacs очень неактивен, и поэтому я решил сделать его быстрее и удобнее, и у меня возникла проблема только в том, что эта программа (строки кода) не обновляется автоматически, то есть compile-command
(после первого запуска), оставайтесь прежними и не изменится без вмешательства, и я решил добавить defin
, но мое невежество в lisp остановило меня, результат был неудачным.
Вопрос: Как заставить мою функцию работать правильно, чтобы при каждом новом щелчке ALT-M compile-command
был новый.
Что я пытался сделать:
(defun x-recompile (compile-command)
(setq compile-command '(concat "/usr/local/Cellar/gcc/8.3.0/bin/gcc-8 -O2 -Wall -o "
(if (file-name-sans-extension buffer-file-name)
(shell-quote-argument
(file-name-sans-extension buffer-file-name)))
" "
(if buffer-file-name
(shell-quote-argument (buffer-file-name))))))
(define-key global-map "\eM" 'compile)
(define-key global-map "\em" 'x-recompile)
Исходная версия:
(setq compile-command '(concat "/usr/local/Cellar/gcc/8.3.0/bin/gcc-8 -O2 -Wall -o "
(if (file-name-sans-extension buffer-file-name)
(shell-quote-argument
(file-name-sans-extension buffer-file-name)))
" "
(if buffer-file-name
(shell-quote-argument (buffer-file-name)))))
(define-key global-map "\eM" 'compile)
(define-key global-map "\em" 'recompile)