Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Tomtt's version of the minor mode for editing RubyOnRails code in Emacs
Emacs Lisp
branch: master

Fixed indentation for shoulda snippets; Added 'shoulds' and 'shouldes…

…' to add several should blocks or should_eventually statements at once; Fixed other minor issues with shoulda snippets;
latest commit f2c4f8f4c0
@rmm5t rmm5t authored
Failed to load latest commit information.
.gitignore Added a .gitignore to the repos
ChangeLog Ability to specify number of lines initially shown when opening log file
History Updated History
behave-rails.el Adding some functionality to rails-lib, experimenting with elisp BDD …
inflections.el rails.el (rails-templates-list): added 'html.erb'
predictive-prog-mode.el README updated.
rails-bytecompile.el rails-lib.el, rails.el: fix compilation error [#9547]
rails-cmd-proxy.el rails-model-layout.el (rails-model-layout:keymap): created
rails-compat.el rails-compat.el (try-complete-abbrev): fixed
rails-controller-layout.el rails-ui.el (rails-minor-mode-prefix-key): created
rails-controller-minor-mode.el rails-model-layout.el (rails-model-layout:keymap): created
rails-core.el rails-core.el (rails-core:observer-p, rails-core:mailer-p): fixed reg…
rails-features.el rails-ruby.el (ruby-hs-minor-mode): created, support ruby in hs-minor…
rails-find.el * rails-spec.el: base support for rspec. Function
rails-fixture-minor-mode.el rails-model-layout.el (rails-model-layout:keymap): created
rails-functional-test-minor-mode.el rails.el (auto-mode-alist): added Rakefile to auto-mode-alist
rails-helper-minor-mode.el rails-model-layout.el (rails-model-layout:keymap): created
rails-layout-minor-mode.el updated copyright
rails-lib.el Adding some functionality to rails-lib, experimenting with elisp BDD …
rails-log.el Ability to specify number of lines initially shown when opening log file
rails-mailer-minor-mode.el rails-model-layout.el (rails-model-layout:keymap): created
rails-migration-minor-mode.el rails-model-layout.el (rails-model-layout:keymap): created
rails-model-layout.el rails-ui.el (rails-minor-mode-prefix-key): created
rails-model-minor-mode.el rails-model-layout.el (rails-model-layout:keymap): created
rails-navigation.el rails-test.el, rails-ui.el: apply patch #11998, created additional ke…
rails-plugin-minor-mode.el updated copyright
rails-project.el * rails-spec.el: base support for rspec. Function
rails-rake.el rails-test.el, rails-ui.el: apply patch #11998, created additional ke…
rails-ruby.el Fixed [#16742]: pass rails environment to script/console
rails-scripts.el Fixed [#16742]: pass rails environment to script/console
rails-shoulda.el whitespace cleanup
rails-snippets-feature.el Fixed indentation for shoulda snippets; Added 'shoulds' and 'shouldes…
rails-spec.el - rails-spec:run-this-spec
rails-speedbar-feature.el rails-compat.el (try-complete-abbrev): fixed
rails-test.el Added support so that should assertion in focus will get run in the s…
rails-ui.el rails-ws.el (rails-ws:available-servers-list): Added Thin support.
rails-unit-test-minor-mode.el rails.el (auto-mode-alist): added Rakefile to auto-mode-alist
rails-view-minor-mode.el rails-ui.el (rails-minor-mode-prefix-key): created
rails-ws.el rails-ws.el (rails-ws:available-servers-list): Added Thin support.
rails.el require rails-shoulda by default


It is minor mode for editing "Ruby On Rails":ror code with
"Emacs":emacs. This minor mode makes your work much easier and user

== Instalation

You need download last release from RubyForge page
"" and and unpack
it to directory containing libraries of Emacs, by default it's

You can also use SVN

  cd  $HOME/.emacs.d/
  svn co svn://rubyforge/var/svn/emacs-rails/trunk emacs-rails

Download and install required libraries

* "":snippets
* "":frecursive

*Alert:* From 0.44 release emacs-rails will require the

After that you must add this code in $HOME/.emacs

  (setq load-path (cons "~/.emacs.d/rails" load-path))
  (require 'rails)

For Windows users: you can use your help in CHM format (the default
*ri*).  This will require utility "KeyHH":keyhh. And add to a file

  (setq rails-chm-file "full_path_to_rails_chm_manual")

After that you can run Emacs. Almost all available actions are in the
menu [Ruby On Rails]. The snippets are in the menu [Ruby On
Rails-Snippets], for the convenience, they are divided into

To change default setting, select [Ruby On Rails - Customize].

== First Acquaintance

Go to directory with your rails application and open any file in Emacs:

  cd $HOME/project/simple_rails_application
  emacs app/controllers/application.rb

There must be "RoR" sign in the list of active minor-modes in status
bar. Thi means, that emacs-rails is enabled and ready to help you in
your not so easy work.

Almoust all actions are in the "RubyOnRails" menu. You can check it
out and try some of them. Don't forget, that menu will help you only
first time. After that you better use hot keys for effective work, you
can find them in the brackets.

== Features

* TextMate-like snippets
* Display of colored log files
* Integration with script/generate and script/destroy (controller,
  model, scaffold, migration, etc)
* Integration with script/console and script/breakpointer
* Run rake %(key)C-c C-c r%
* Quick start svn-status in RAILS_ROOT %(key)f9%
* Documentation search using *ri* or *chm* file and Rails API
  reference in HTML %(key)f1%
* Quick access to the main configuration files
* Automatic TAGS generation in RAILS_ROOT directory

=== Management of WEBrick/Mongrel

* Your can select Webrick, Mongrel or Lighttpd
* Start/stop application server %(key)C-c C-c w s%
* Automatic browsing on current action (from view or controller)
  %(key)C-c C-c w a%

=== Navigation in RAILS_ROOT hierarchy

* Quick switch stylesheets, javascripts, migrations, layouts, helpers,
  controllers, models, observers, plugins
* In controller file: go to views, functional test, helper
* Switch between action/view %(key)Ñ-up%
* Go to file in current line (example: cursor at line [redirect_to
  controller => :home, :action => "show"], will be open action "show"
  in "home" controller) %(key)C-RET%
* Quick access to the main configuration files using menu

Other hot keys

* %(key)C-c C-c g g% rails-nav:goto-migrate
* %(key)C-c C-c g j% rails-nav:goto-javascripts
* %(key)C-c C-c g s% rails-nav:goto-stylesheets
* %(key)C-c C-c g l% rails-nav:goto-layouts
* %(key)C-c C-c g h% rails-nav:goto-helpers
* %(key)C-c C-c g c% rails-nav:goto-controllers
* %(key)C-c C-c g m% rails-nav:goto-models
* %(key)C-c C-c g o% rails-nav:goto-observers
* %(key)C-c C-c g p% rails-nav:goto-plugins

=== ERb refactoring

* Create partial from selection %(key)C-c p%
* Create helper from block  %(key)C-c b%

= Bugs

emacs-rails designed for current CVS version of Emacs (future Emacs22)
more probably some functions will not work in older version, or will
work with errors, so if it is possible, try to update. I will not tell
you why you should use CVS version, just take my word.

In some version from CVS some time ago, when you use emacs-rails,
sintax highlight in rhtml was not working, so just update to the
newest version from CVS.

If you find error, place it description in "BugTrack":bugtrack.

= Links

* "Emacs W32 (CVS version for Windows)":
* "HowToUseEmacsWithRails":
* "":
* "":
* "Emacs screencast":screencast
* "Effective Emacs":effectiveemacs

Something went wrong with that request. Please try again.