emacs上でファンクションキーF5にて現在編集中のrubyスクリプトを実行するには

emacsとrubyでC-cC-l(run-ruby)ができることを今まで気がつかなかった。 - 計算機と戯れる日々の続き

basicのRUNを懐かしみつつ、C-cC-l[return]が面倒なので.emacsに以下を定義

(add-hook 'ruby-mode-hook (lambda () (local-set-key [f5] "\C-x\C-s\C-c\C-s\C-xo\C-c\C-l\C-m")))

ファンクションキーの[f5]は小文字でないとダメなので注意(はまった)


グローバルマップに定義するなら


グローバルマップだと全部のモードで有効になるからって…モードごとにC-cC-s とC-cC-lの挙動が違うんだよな。
ローカルマップで吸収させるか。もしかして以前のパッチ群は不要になるかな?まあ機会があればチャレンジしてみるか。
ということで、既にC-cC-lで今回のrubyと同じ挙動をしているscheme,prolog,haskellのために以下を定義

;; run-script
(global-set-key [f5] "\C-c\C-l")


fsetって関数で以下でも良い(名前をひとつ消費するけど)

;; run-script
(fset 'run-script "\C-c\C-l")
(global-set-key [f5] 'run-script)