Emacs игнорирует переменную компиляции - PullRequest
0 голосов
/ 11 июня 2018

Изначально в моем файле .emacs.d / init.el было определено следующее:

(defun go-mode-setup ()
  (setq compile-command "go build -v && go test -v && go vet && golint")
  (define-key go-mode-map (kbd "C-c C-c") 'compile)
  )

В то время как в go-режиме все остальное работало нормально, но его не показывалось илиуважайте мою команду Cc Cc, вместо этого я получаю

C-c C-c is undefined.

Итак, я добавил явный хук:

(add-hook 'go-mode-hook (lambda () (define-key go-mode-map (kbd "C-c C-c") 'compile)))

Это теперь учитывает мой ярлык Cc Cc kbd, но по-прежнему игнорирует команду компиляцииЯ поставил.К сожалению, кажется, что он компилирует всю папку, а не только файл main.go, над которым я работаю.

Compile command: make -k 

Как я могу настроить Cc Cc на использование команды компиляции, которую я установил?

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Ваш код работает на меня.Единственное, чего не хватает, это add-hook.Возможно, вы также хотите установить compile-command в локальный буфер.

Вот мой код, который определенно работает:

(defun jpk/go-mode-hook ()
  (make-local-variable 'compile-command)
  (setq compile-command "go build -v")
  (define-key go-mode-map (kbd "C-c C-c") #'compile))
(add-hook 'go-mode-hook #'jpk/go-mode-hook)

Я настоятельно рекомендую не переопределять compile как в @Ответ JDC.Если вы должны определить свою собственную команду, сделайте это с другим именем.

Вы можете проверить пакет multi-compile , он позволяет вам установить несколько команд компиляции (необязательно основные-конкретный).

0 голосов
/ 12 июня 2018

Это должно работать:

(add-hook 'go-mode-hook (lambda ()
  (defun compile ()
    (setq compile-command "go build -v && go test -v && go vet && golint"))
  (define-key go-mode-map (kbd "C-c C-c") 'compile)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...