xyzzyで普通にRubyスクリプトを編集していたのですが、若干不便に思えてきたのであらためて開発環境を構築しなおしてみることにしました。
■ ruby-modeのインストール
ruby-mode改良版をダウンロードして展開します。 オートインデントやキーワードファイルを使った補完機能に期待。
- ruby-hint.l、ruby-model.l、ruby-mode.lcを<XYZZYDIR>/site-lispにコピーします。
- Rubyを<XYZZYDIR>/etcにコピーします。
.xyzzyファイルに以下を追加します。
(load-library "ruby-mode")
(push '("\\.rb$" . ruby-mode) *auto-mode-alist*)
; インデント量を変える。nilの時はタブを挿入
;(setq *ruby-indent-column* 2)
~.rbファイルを開いてみて予約後などなどに色がついていればインストール成功です。キーワード補完は SHIFT+SPACEで実行らしいです。
■ shell3のインストール
Rubyスクリプトを実行するのにM-x shellで実行するシェルモードを使おうとしたのですが、シェルモード内部ではコマンドヒストリを使うことが出来ません。通常のコマンドプロンプトだと上矢印や下矢印で実行できるやつです。コマンドヒストリをxyzzyのシェルモードで使うためにはshell3をインストールして使用します。
xyzzy > その他のshell3.lをダウンロードし、 <XYZZYDIR>/site-lispにコピーします。このままだとCTRL-N、CTRL-Pがヒストリのキーバインドに割り当てられているため、該当部分をコメントアウトします
;;; ;;; added by HATTORI Masashi<gyo@he.mirai.ne.jp> ;;; (define-key *shell-mode-map* #\TAB 'shell-complete) (define-key *shell-mode-map* #\Up 'shell-history-previous) ;;(define-key *shell-mode-map* #\C-p 'shell-history-previous) (define-key *shell-mode-map* #\Down 'shell-history-next) ;;(define-key *shell-mode-map* #\C-n 'shell-history-next) (define-key *shell-mode-map* #\C-a 'shell-goto-bol) (define-key *shell-mode-map* #\C-r 'shell-history-search-backward)
.xyzzyに以下を追加します。
;;shell3(シェルモードで履歴) (require "shell3")
M-x shellでシェルモードを起動し、コマンドを実行。その後上矢印でさきほどのコマンドが表示されれば成功です。