Cygwin上のMeadowでRubyを便利に使う

前日の日記で試したVim/RubyvimRubyインターフェースが有効にできなかったので(./configure実行途中でメモリ食い尽くして止まる…Cygwinのエラーなのかもしれない)、vimを使うのをあきらめてMeadowを使ってみる。

参考1

Meadowのインストール:
Meadow/Emacs memo: 設定済み Meadow を使ってみよう
Emacs (Meadow) のインストールと使い方 - アルゴリズムとデータ構造入門


インストールしたら、Cygwin上のbashからMeadowを簡単に起動できるようにMeadow.exeへのパスを通しておく。
~/.bashrc(c:\cygwin\home\{user名}\.bashrc)に以下を追加する。

PATH=/cygdrive/c/meadow/bin:$PATH
export PATH

追記(2007年7月10日)

aspellをMeadow内で使いたいときに

$ LANG=C Meadow.exe

としなければならないのはめんどくさいので、PATHを通すのをやめてシェルスクリプトから起動するようにした。/usr/local/bin/に「meadow」という名前でシェルスクリプトを作る。
meadow

#!/bin/sh
LANG=C
exec /cygdrive/c/meadow/bin/Meadow "$@"

~/.bashrcで通したパス(PATH=/cygdrive/c/meadow/bin:$PATH)は/usr/local/bin/より先に/cygdrive/c/meadow/binのパスを通していて邪魔なので削除しておく。(削除しないとスクリプトからではなく、/cygdrive/c/meadow/bin/以下のmeadowが直接起動されてしまう。)
以上

手順

1.目的のファイルが置いてあるディレクトリに移動する。(例: /usr/src/ruby-1.8.6-1/misc)
「/usr/src/」の中に「ruby-xxx」というディレクトリが見つからなければ、setup.exeでソースをダウンロードする。(CategoryではInterpretersの中に含まれる)


2.関連ファイルをコピー
例:

$ cp inf-ruby.el rubydb2x.el rubydb3x.el ruby-mode.el /cygdrive/c/meadow/lisp/

(各ファイルの簡単な概要は「.../ruby-xxx/misc/README」を参照。拡張子の「.el」は「Emacs Lisp」のファイルであることを表すらしい。)

コピー先として、「/cygdrive/c/meadow/lisp/」の代わりに「/usr/share/emacs/site-lisp/ruby-mode/」を指定したらなぜか認識してくれなかった。(←追記:当たり前だった…。自分の使ってるのはMeadowであってEmacsじゃない。)デフォルトのロードパスに「/usr/share/emacs/site-lisp/ruby-mode/」が入っていなかったからかも知れない(未確認)。

参考2

ロードパスとは?:Meadow/Emacs memo: Meadow 関連の少し高度な知識
Rubyモード(ruby-mode.el)を使う:Meadow/Emacs memo: プログラム関連 ― 各言語用


3.「~/.emacs」に以下の設定を追加する

(autoload 'ruby-mode "ruby-mode"
  "Mode for editing ruby source files")
(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-hock 'ruby-mode-hook
          '(lambda ()
            (inf-ruby-keys)
          ))

以上で、拡張子が「.rb」のファイルをRubyのファイルと認識してくれるはず。
meadowを立ち上げて、モードラインの真ん中辺りに「(Ruby)」と出たらruby-modeが正常に動作している。

 -S(Unix)--  hello.rb(Ruby)         All L2   (Ruby)------------