Home > develop > emacs Archive

emacs Archive

emacs.el, anything.el, anything-rcodetools.elを導入

  • 2009年5月31日 18:12
  • emacs

前回のemacs導入時にtomoyaさんにコメントいただいたり、negipoさんにもanything.elいれるといいよー!てずっと言われてて、軽く試してもなんかうまく導入できなくて途方に暮れて放置してたところ、この週末に時間とって試してみるとすんなり入りました。得てしてそういうものですよね。。あと、あわせてrails.el, anything-rcodetools.elなんかも入れてみました。その導入メモを残しておきたいと思います。

anything.el

ここからanything.elをDL.ロードパスが通ってるディレクトリにつっこみます。僕はここのサイトの影響で .emacs.d/elisp/ 以下につっこんでます。ロードパスを変えたいときは、.emacs.elに

(setq load-path (cons "~/path/to/loadpath" load-path))

みたいな記述を書けばOKです。

さて、anything.elをロードパスに置いたら、次の内容を.emacs.elに追記します。

(require 'anything-config)
(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))
(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)
(global-set-key (kbd "C-;") 'anything)

これで、emacsを再起動させると、編集中にC-;を打つとanythingが起動します。すると、Bufferの中に保存された内容や、最近開いたファイルやら何やらが表示されます。これをC-n,C-p / C-v,M-vで選択できます。

もう、これすごい。みんなすごいって言ってた意味がやっとわかりました。QuickSilverみたいなかんじで編集したいファイルに辿り着けるのがすごく便利。C-x,C-fでファイル選択するの、ちょっと扱いづらいなぁと思ってたけど、これで一気に解決できそうです。

(参考)anything.elが手放せなくなった

rails.el

必要なファイルは「rails.el」一式、「find-recursive.el」「snippet.el」の3種類。これらをロードパスが通ったところに設定します。(上の例だと.emacs.d/elisp/)

その上で、次のような内容を.emacs.elに追加。

;; rails.el
(defun try-complete-abbrev (old)
  (if (expand-abbrev) t nil))

(setq hippie-expand-try-functions-list
      '(try-complete-abbrev
        try-complete-file-name
        try-expand-dabbrev))
(setq rails-use-mongrel t)
(require 'rails)

;; 対応するファイルへの切り替え(C-c C-p)
(define-key rails-minor-mode-map "\C-c\C-p" 'rails-lib:run-primary-switch)
;; 行き先を選べるファイル切り替え(C-c C-n)
(define-key rails-minor-mode-map "\C-c\C-n" 'rails-lib:run-secondary-switch)

(setq auto-mode-alist  (cons '("\\.rhtml$" . html-mode) auto-mode-alist))

対応ファイルへの切り替え

Controller, View上でC-c C-p をタイプ。すると該当のアクション箇所、またはViewにさくっとジャンプ。これすごい。今まで毎回毎回ウィンドウ分割してファイルを選択して、、てやってたのが2キーでジャンプ。やばい!

行き先を選択するメニューの表示

C-c C-nでメニューがポップアップ表示され、ここからHelperやpartialにジャンプできます。これもすごい。。

view間の移動

<%= render :partial => 'news' %> みたいになってる箇所で C-Enterをタイプ。すると_news.rhtmlのpartialファイルに一気にジャンプ。これも便利すぎてウケます。

まとめると、とにかく、これでもかというくらいに移動系が便利になってます。 Railsは、あちらこちらに移動してファイルいじることが多いので、rails.elは確かに必須。 今まで入れてなくて相当損してました。。

(参考)rails.elまとめ

anything-rcodetools.el

Rubyそのものを書くときに、補完周りなんかで便利になるelispです。これインストールかなりハマりました。次の手順でインストールをすすめます。anything.elはあらかじめ入れておきましょう。

  1. gem install rcodetools
  2. gem install fastri
  3. ここからanything-rcodetools.elを導入
  4. ~/.gem/ruby/1.8/gems/rcodetools-0.x.x/にあるrcodetools.elをロードパスの通った場所にコピー

ハマりどころは4.のrcodetools.elを持ってくるところ。ずっとこのファイルのロードエラーが出て困ってましたが、自分で持ってこないといけないみたい。ちなみにRubyに慣れてる人なら当然かもしれませんが、gemでインストールするときに、sudoでインストールすると上記ファイルは.gem/以下に作られないので、そこもあわせて注意です。(これもハマった)

その上で、次のような内容を.emacs.elに追加しておきます。

(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-e" 'anything-execute-persistent-action)

これで"def"と入力した後に、スペースを入力すると、自動的に"end"が挿入されるなど、Rubyに特化した補完が効いてきます。これもタイプ数さぼるために便利。

ただ、anything-rcodetoolsは、明らかにまだまだもっと便利そうな機能がいっぱいありそうなんですけど、まだ何をどうやってどうなれば便利なのか、自分の中でそのメリットが確認できていません。ここは要研究。

(参考)(solved) anything-rcodetools.el が動かない (Ubuntu Studio 8.04)

github

また、いつものようにここまでの内容をgithubにpushしています。興味ある方はご参考ください。あと「こうすればもっと便利になるよ!」みたいな意見は相変わらずどんどん募集中です。

Index of all entries

Home > develop > emacs Archive

Search
Feeds

Return to page top