読者です 読者をやめる 読者になる 読者になる

smart-compile.elでできてしまった

emacs

前回の続き。トラバまでいただいて恐縮です。
初トラバでうれしはづかし!

目的の補足

何のcompileをしようとしていたか書いていないことに気づいたので、一応こちらで補足を。
C#で簡単な検証コードを書くときにMeadowEmacsを使っています。
compileをC-c cに割り当てていたけれど、コンパイラにファイル名を与える必要があります。
なので、割り当てキーを押した際に一緒にファイル名も入ればいいなと考えて、.emacsファイルをこちょこちょしてました。

結論を先に

smart-compile.elを導入することで解決しました。
ダウンロード先: Emacs Lisp TIPS


smart-compile-alistの定義に以下の一文を追加*1

("\\.cs\\'" . "gmcs %f")

.emacsに下記を追加

(require 'smart-compile)
(global-set-key "\C-c\c" 'smart-compile)

言及いただいたうち、試したこと

executable-interpretがある - ’(rubikitch wanna be (a . lisper))

M-x executable-interpretはデフォルトで現在のファイル名が入力されている。
現在のファイル名は「buffer-file-name」か「(buffer-file-name)」で取得できる。

「現在のファイル名の取得方法」について色々な方法をいただきました。ありがとうございます!

M-x executable-interpretは、現在開いているファイルをシェルから実行する、というコマンドのようですね。シェルスクリプト作成時によさそう。
また、buffer-file-nameはnilを指していました。バッファ内にファイルが展開されてない場合はnilを返すとなっていましたが…
僕が使い方を間違えているようです。

さすがに

もうちょっと色々いじくり回してみないと、さすがにわからない。
使いにくいと思ったところからいじってみよう。

*1:monoの場合。Windowsの場合はgmcs→csc