2012年4月13日金曜日

emacsにruby-modeを設定する方法

[root@yoshi3 ~]# rpm -qa | grep emacs
emacs-common-21.4-24.el5
emacs-21.4-24.el5

[root@yoshi3 misc]# cd /root/ruby-1.8.7-p358/misc
[root@yoshi3 misc]# pwd
/root/ruby-1.8.7-p358/misc
[root@yoshi3 misc]# ls -l
合計 88
-rw-r--r-- 1 10347 10347   369  4月 10  2008 README
-rw-r--r-- 1 10347 10347 14452  3月 11  2007 inf-ruby.el
-rw-r--r-- 1 10347 10347  6747  2月 13  2007 ruby-electric.el
-rw-r--r-- 1 10347 10347 38653  5月 19  2008 ruby-mode.el
-rw-r--r-- 1 10347 10347  1746  3月 19  2008 ruby-style.el
-rw-r--r-- 1 10347 10347  4481  2月 13  2007 rubydb2x.el
-rw-r--r-- 1 10347 10347  4613  2月 13  2007 rubydb3x.el
[root@yoshi3 misc]# mkdir /root/.emacs.d/elisp/
[root@yoshi3 misc]# cp -ip * /root/.emacs.d/elisp/
[root@yoshi3 ~]# cd
[root@yoshi3 ~]# emacs .emacs
以下の内容を追記
--------------------------------------------------------------------------------------
(add-to-list 'load-path "/root/.emacs.d/elisp/")

(autoload 'ruby-mode "ruby-mode" "Mode for editing ruby source files" t)
(setq auto-mode-alist (append '(("\\.rb$" . ruby-mode)) auto-mode-alist))
(setq interpreter-mode-alist (append '(("ruby" . ruby-mode)) interpreter-mode-alist))
(autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process")
(autoload 'inf-ruby-keys "inf-ruby" "Set local key defs for inf-ruby in ruby-mode")
(add-hook 'ruby-mode-hook '(lambda () (inf-ruby-keys)))
(global-font-lock-mode 1)
(setq default-frame-alist (append '(
  (foreground-color . "gray")  ;
  (background-color . "black") ;
  (cursor-color     . "blue")  ;
)
default-frame-alist))


(setq ruby-indent-level 2)
(setq ruby-indent-tabs-mode nil)
--------------------------------------------------------------------------------------
[root@yoshi3 ~]# emacs /root/ruby-1.8.7-p358/rubytest.rb
を表示してカラーモードで表示されていればおk


■注意事項
・emacsのバージョンが23じゃないとrubyの1.9系のruby-modeがどうやら使用できない様子
・File mode specification error: (void-variable ruby-font-lock-keywords)
が出る場合は以下を参照
http://www.ruby-forum.com/topic/154226
⇒自分は上記URLを下に「ruby-mode.el」の該当箇所を書き換えたのですが、治らず
⇒上述した.emacsの内容の太線で部分を記載することで対応することができました

0 件のコメント:

コメントを投稿