我已经使用前奏曲大约一年,并开发了一个很好的设置。我开始写咖啡脚本,并尝试使用前奏-咖啡模块。这包括以下内容:
(setq coffee-command "~/dev/coffee")这在我的机器上是不正确的。我想把它改为:
(setq coffee-command "coffee")显然,我可以简单地修改这一行并完成它,但是我喜欢将所有的更改都保存在personal文件夹中,以便方便地在所有机器上更新和保持我的dotfile同步。
我试图以下列方式覆盖它:
(setq coffee-mode "coffee")
(eval-after-load 'coffee-mode
(setq coffee-command "coffee"))
(add-hook 'prelude-coffee-mode-hook (setq coffee-command "coffee"))
(add-hook 'coffee-mode-hook (setq coffee-command "coffee"))但这些都不起作用。更改需要在另一个文件之后运行,该文件似乎是用eval-after-load运行的。
附加信息我将在这里复制prelude-coffee.el文件,以确保完整性:
(require 'prelude-programming)
(eval-after-load 'coffee-mode
'(progn
(defun prelude-coffee-mode-defaults ()
"coffee-mode-defaults"
;; CoffeeScript uses two spaces.
(setq coffee-tab-width 2)
;; If you don't have js2-mode
(setq coffee-js-mode 'javascript-mode)
;; If you don't want your compiled files to be wrapped
(setq coffee-args-compile '("-c" "--bare"))
;; *Messages* spam
(setq coffee-debug-mode t)
;; Emacs key binding
(define-key coffee-mode-map [(meta r)] 'coffee-compile-buffer)
;; Riding edge.
(setq coffee-command "~/dev/coffee")
;; Compile '.coffee' files on every save
(and (buffer-file-name)
(file-exists-p (buffer-file-name))
(file-exists-p (coffee-compiled-file-name (buffer-file-name)))
(coffee-cos-mode t)))
(setq prelude-coffee-mode-hook 'prelude-coffee-mode-defaults)
(add-hook 'coffee-mode-hook (lambda ()
(run-hooks 'prelude-coffee-mode-hook)))))
(provide 'prelude-coffee)总之,我如何覆盖咖啡模式钩子上正在发生的事情?
发布于 2014-05-15 13:48:38
哦,天哪,太可怕了。我会用前奏曲提出一个问题。至少在设置coffee-command之前,它应该检查是否存在。
这条线很近
(add-hook 'prelude-coffee-mode-hook (setq coffee-command "coffee"))试试这个:
(add-hook 'prelude-coffee-mode-hook (lambda () (setq coffee-command "coffee")))我发现了prelude-coffee.el的其他问题
您不能在钩子上使用setq,只需清除所有以前添加的钩子。太不文明了。
https://stackoverflow.com/questions/23679603
复制相似问题