2009/12/25(金) [n年前の日記]
#1 [prog] DXRubyを勉強するためにRubyが書きやすいエディタもしくはIDEを探してみたのだけど
どれも今一つ。
◎ emacs(NTEmacs)を試してみたり。 :
_NTEmacs 22BASE (日本語インライン変換 & 半透明)
を試してみたのだけど。ruby-mode.el がそもそも入ってなかった。どうもバージョン23からは標準で入ってるらしいのだけど。
ruby-mode.el その他は、 _ActiveScriptRuby をインストールしたフォルダの中にそれらしいモノが入っていた、ように見えたけど一般的には Ruby のソースファイル群の中の misc フォルダ以下に入ってるもの、とされているらしく。
とりあえず、よく判らんので、一般的に言われているほうのモノを使う。 _オブジェクト指向スクリプト言語 Ruby のサイトから辿って、ruby-1.8.7-p174.zip をDL。解凍して、misc/*.el を、emacs設定ファイルが入っているフォルダの中に突っ込んでみたり。
自動補完についてはどうするのかがよく判らず。色々検索してみたら、
_今さらだけど,anything.el を使う - ~fumi/ChangeLog
_anything.el が手放せなくなった | Weboo! Returns.
_巷で話題の anything.el を使ってみた ? ありえるえりあ
_emacs.el, anything.el, anything-rcodetools.elを導入 - blog.katsuma.tv
_Windows: なにげない日々の記録
_auto-complete で Ruby のメソッドを補完する - ChangeLog な日々
_ruby-modeで、リターンキーだけでインデントと改行を行う - 学習する機械、学習しない人間
_ruby-mode の設定(かわちょぶろぐ、2008年01月10日)
_EmacsからRubyを実行。 - t-imaizumiのMacとかのはなし
_のほほん車日記: EmacsからRubyスクリプトを実行する(だけの)Tips
_ruby - PukiWiki
.emacs 側の記述は、コピペで以下のようにした。中身はよくわかってないけど。
でも、使い方が判らず。ここまでやって諦めた。
とりあえず、C-; と打つと、今まで NTEmacs で編集してきたファイルの履歴が表示されてそれを絞り込んでいけるので、その点は便利になったような気がする。
ruby-mode.el その他は、 _ActiveScriptRuby をインストールしたフォルダの中にそれらしいモノが入っていた、ように見えたけど一般的には Ruby のソースファイル群の中の misc フォルダ以下に入ってるもの、とされているらしく。
とりあえず、よく判らんので、一般的に言われているほうのモノを使う。 _オブジェクト指向スクリプト言語 Ruby のサイトから辿って、ruby-1.8.7-p174.zip をDL。解凍して、misc/*.el を、emacs設定ファイルが入っているフォルダの中に突っ込んでみたり。
自動補完についてはどうするのかがよく判らず。色々検索してみたら、
- anything.el
- anything-rcodetools.el
- auto-complete.el
- auto-complete-ruby.el
- rcodetools (Ruby のgemでインストールする)
_今さらだけど,anything.el を使う - ~fumi/ChangeLog
_anything.el が手放せなくなった | Weboo! Returns.
_巷で話題の anything.el を使ってみた ? ありえるえりあ
_emacs.el, anything.el, anything-rcodetools.elを導入 - blog.katsuma.tv
_Windows: なにげない日々の記録
_auto-complete で Ruby のメソッドを補完する - ChangeLog な日々
_ruby-modeで、リターンキーだけでインデントと改行を行う - 学習する機械、学習しない人間
_ruby-mode の設定(かわちょぶろぐ、2008年01月10日)
_EmacsからRubyを実行。 - t-imaizumiのMacとかのはなし
_のほほん車日記: EmacsからRubyスクリプトを実行する(だけの)Tips
_ruby - PukiWiki
.emacs 側の記述は、コピペで以下のようにした。中身はよくわかってないけど。
;; ---------------------------------------- ;; ruby-mode (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))) (require 'ruby-electric) (add-hook 'ruby-mode-hook '(lambda () (ruby-electric-mode t))) (autoload 'rubydb "rubydb3x" "run rubydb on program file in buffer *gud-file*. the directory containing file becomes the initial working directory and source-file directory for your debugger." t) (setq ruby-indent-level 2) (setq ruby-indent-tabs-mode nil) (define-key ruby-mode-map "\C-m" 'ruby-reindent-then-newline-and-indent) (define-key ruby-mode-map "\C-j" 'newline) ;; ---------------------------------------- ;; anything (require 'anything-config) (global-set-key (kbd "C-;") 'anything) (define-key anything-map (kbd "C-p") 'anything-previous-line) (define-key anything-map (kbd "C-n") 'anything-next-line) (define-key anything-map (kbd "C-v") 'anything-next-source) (define-key anything-map (kbd "M-v") 'anything-previous-source) (setq anything-sources (list anything-c-source-buffers anything-c-source-bookmarks anything-c-source-recentf anything-c-source-file-name-history anything-c-source-locate)) ;; ---------------------------------------- ;; rcodetools (require 'anything) (require 'anything-rcodetools) ;; Command to get all RI entries. (setq rct-get-all-methods-command "PAGER=cat fri -l") ;; See docs (define-key anything-map "\C-z" 'anything-execute-persistent-action) ;; ---------------------------------------- ;; auto-complete-ruby (require 'auto-complete-ruby) (add-hook 'ruby-mode-hook (lambda () (setq ac-omni-completion-sources '(("\\.\\=" ac-source-rcodetools))))) ;; ---------------------------------------- (require 'rcodetools) (setq rct-find-tag-if-available nil) (defun make-ruby-scratch-buffer () (with-current-buffer (get-buffer-create "*ruby scratch*") (ruby-mode) (current-buffer))) (defun ruby-scratch () (interactive) (pop-to-buffer (make-ruby-scratch-buffer))) (defun ruby-mode-hook-rcodetools () (define-key ruby-mode-map "\M-\C-i" 'rct-complete-symbol) (define-key ruby-mode-map "\C-c\C-t" 'ruby-toggle-buffer) (define-key ruby-mode-map "\C-c\C-d" 'xmp) (define-key ruby-mode-map "\C-c\C-f" 'rct-ri)) (add-hook 'ruby-mode-hook 'ruby-mode-hook-rcodetools)
でも、使い方が判らず。ここまでやって諦めた。
とりあえず、C-; と打つと、今まで NTEmacs で編集してきたファイルの履歴が表示されてそれを絞り込んでいけるので、その点は便利になったような気がする。
◎ eclipse + Aptana RadRails とやらを試してみたり。 :
要するに、eclipseみたいに、「.」を打ったら自動補完してほしいわけです。だったら eclipse 使えばいいじゃん、という気分になってきた。ので、そっちも試してみたり。
iアプリ用に使ってる eclipse にプラグインを追加して動作がおかしくなるのは怖いので、わざわざ別フォルダを作成して、その中に Perl や Python や Ruby 用の eclipse を入れることに。参考サイトは以下の通り。
_Freak: Eclipse 3.5を余分なプラグインなしでインストール
_Eclipse プラグイン版 RadRails のインストール
_halfway life: Eclipse3.5 に Aptana Studio1.5 をインストールする(WinXP)
_Semigadget: WindowsでPerl実行環境構築(Eclipse + EPIC + ActivePerl)
_EclipseとPydevによるGoogle App Engineの開発環境構築 | 山本隆の開発日誌
要するに、Aptana RadRails、EPIC、PyDev を入れる。
入れてはみたけど、なんかちゃんと補完ができないような…。「.」を打ったらすぐ補完してくれるようにするのは、設定を弄ったらできたけど。require 'dxruby' と打っても、DXRuby 関係のメソッドが表示されないような気がする。気がするというか、表示されてない。Javaと違って、さすがにそこまで面倒は見てくれないのかな。>eclipse。
iアプリ用に使ってる eclipse にプラグインを追加して動作がおかしくなるのは怖いので、わざわざ別フォルダを作成して、その中に Perl や Python や Ruby 用の eclipse を入れることに。参考サイトは以下の通り。
_Freak: Eclipse 3.5を余分なプラグインなしでインストール
_Eclipse プラグイン版 RadRails のインストール
_halfway life: Eclipse3.5 に Aptana Studio1.5 をインストールする(WinXP)
_Semigadget: WindowsでPerl実行環境構築(Eclipse + EPIC + ActivePerl)
_EclipseとPydevによるGoogle App Engineの開発環境構築 | 山本隆の開発日誌
要するに、Aptana RadRails、EPIC、PyDev を入れる。
入れてはみたけど、なんかちゃんと補完ができないような…。「.」を打ったらすぐ補完してくれるようにするのは、設定を弄ったらできたけど。require 'dxruby' と打っても、DXRuby 関係のメソッドが表示されないような気がする。気がするというか、表示されてない。Javaと違って、さすがにそこまで面倒は見てくれないのかな。>eclipse。
◎ 他にも色々試したのだけど。 :
RDE とか、Komodo Edit とか。でもなんか補完が…。
一番補完してくれるのは、NTEmacs のソレなのかな。前述の設定だと、「.」を打った後、M-C-i を打てばメソッドを表示してくれる、ように見える。が、eclipse で Java を書いてる時のソレに比べると…。いや、動的な言語?でそういうことをするのはスゲー難しいんだぞ、という話も見かけたのだけど。スクリプトをこっそり裏で動かしてみないと処理ができないとかなんとか。Javaソースを編集してる際も、実は裏で絶えずコンパイルしてるらしいし…。仕方ないのかな。
一番補完してくれるのは、NTEmacs のソレなのかな。前述の設定だと、「.」を打った後、M-C-i を打てばメソッドを表示してくれる、ように見える。が、eclipse で Java を書いてる時のソレに比べると…。いや、動的な言語?でそういうことをするのはスゲー難しいんだぞ、という話も見かけたのだけど。スクリプトをこっそり裏で動かしてみないと処理ができないとかなんとか。Javaソースを編集してる際も、実は裏で絶えずコンパイルしてるらしいし…。仕方ないのかな。
◎ とりあえずDXRubyでちょこちょこ遊んだけど。 :
サウンド関係の仕様を見て、ちょっとこれはと。SEは wav が使えるから、まだどうにかならないでもないけど。BGMはMIDIデータしか使えないらしい。厳し過ぎる。携帯電話アプリのレベル。いやまあ、FM音源積んでた家庭用ゲーム機よりは音色の音質ではマシかもしれないけど。自由度の無さを考えると、ある意味スーファミ以下のような気もする。MODに対応すればスーファミレベルにはなるんだろうけどなあ。いや、今からMODを作れというのもなんかアレな気もするけど。
なんとかならんのかと思ってもう少し検索したら、vox.dll なるモノを使うことで、oggが使えると知る。サンプルスクリプトをDLして試してみたら、ちゃんと鳴ってくれた。これを使うのが現実的な解、なのだろうか。
他のライブラリはどうなんだろうと思って検索してみたら、StarRubyならoggを標準で使えるらしい。SDLで対応してるのでその延長なんだろうけど。しかしSDLは描画が遅いという話も聞くわけで。うーん。
なんとかならんのかと思ってもう少し検索したら、vox.dll なるモノを使うことで、oggが使えると知る。サンプルスクリプトをDLして試してみたら、ちゃんと鳴ってくれた。これを使うのが現実的な解、なのだろうか。
他のライブラリはどうなんだろうと思って検索してみたら、StarRubyならoggを標準で使えるらしい。SDLで対応してるのでその延長なんだろうけど。しかしSDLは描画が遅いという話も聞くわけで。うーん。
[ ツッコむ ]
以上です。