emacsに、に渡されるコマンドの一部として現在のバッファーのファイル名を使用させたいのですがM-x compile
。たとえば、〜/ foo.rbを編集している場合、M-x compile
実行したいruby ~/foo.rb
に設定compilation-command
してみまし(list "ruby" buffer-file-name)
たが、ここではs式を渡せないようです。
emacsに、に渡されるコマンドの一部として現在のバッファーのファイル名を使用させたいのですがM-x compile
。たとえば、〜/ foo.rbを編集している場合、M-x compile
実行したいruby ~/foo.rb
に設定compilation-command
してみまし(list "ruby" buffer-file-name)
たが、ここではs式を渡せないようです。
C-hfcompile
RET
compile is an interactive autoloaded compiled Lisp function in
`compile.el'.
[snip]
Interactively, prompts for the command if `compilation-read-command' is
non-nil; otherwise uses `compile-command'. With prefix arg, always prompts.
Additionally, with universal prefix arg, compilation buffer will be in
comint mode, i.e. interactive.
探していたものが見つかったので、次は…</p>
C-hvcompile-command
RET
compile-command is a variable defined in `compile.el'.
Its value is "make -k "
[snip]
Sometimes it is useful for files to supply local values for this variable.
You might also use mode hooks to specify it in certain modes, like this:
(add-hook 'c-mode-hook
(lambda ()
(unless (or (file-exists-p "makefile")
(file-exists-p "Makefile"))
(set (make-local-variable 'compile-command)
(concat "make -k "
(file-name-sans-extension buffer-file-name))))))
(add-hook 'ruby-mode-hook
(lambda ()
(set (make-local-variable 'compile-command)
(concat "ruby " buffer-file-name))))
もちろん、 がrake
あれば
簡単にカスタマイズして使用できますRakefile
。