私はpreludeを約 1 年間使用しており、素晴らしいセットアップを開発しました。私は coffee-script を書き始め、prelude-coffee モジュールを使用しようとしました。これには次の行が含まれます。
(setq coffee-command "~/dev/coffee")
これは私のマシンでは正しくありません。私はそれを次のように変更したいと思います:
(setq coffee-command "coffee")
明らかに、この行を変更するだけで完了できpersonal
ますが、すべてのマシンで簡単に更新してドットファイルを同期させるために、すべての変更をフォルダーに保持したいと思います。
私は次の方法でそれをオーバーライドしようとしました:
(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)
要約すると、coffee-mode-hook で起こっていることをオーバーライドするにはどうすればよいですか?