簡體   English   中英

Emacs編譯忽略編譯命令變量

[英]Emacs compile ignoring compile-command variable

最初,我在.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)
  )

在進入模式時,其他所有內容似乎都可以正常工作,但是他似乎並沒有設置或尊重我的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 

如何設置抄送抄送以使用我設置的編譯命令?

您的代碼對我有用。 唯一缺少的是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)

我強烈建議不要像@jdc的答案那樣重新定義compile 如果必須定義自己的命令,請使用其他名稱。

您可能要簽出多重編譯包,它允許您設置多個編譯命令(可選地,特定於主要模式)。

這應該工作:

(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)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM