2010-03-11 50 views

回答

28

你应该尝试所有的RoR并解决你最喜欢的一个。

首先,您应该使用ECB,ruby-mode,emacs-rails和其他一些东西来检查Marshall Vandegrift的excellent screencast。它给你一个很好的感觉,就是如何在Emacs上编写RoR。

总之这里有一些模式,你应该尝试:

  • Rinari - 让周围的代码,运行测试和管理控制台,网络服务器等一个简单的框架,它的简约和牯围绕着一系列的键绑定。
  • Emacs-rails - Emacs RoR模式的祖父。它一段时间没有更新,实际上主页不再存在。但它非常强大,可以让你做几乎所有事情。
  • Emacs-rails-reloaded - 这是对原始emacs-rails的重新设计,我相信是同一个人。它使用伟大的anything模式来帮助您找到事物并解决问题。我目前正在使用这个AND rinari。

下面是有用的一些其他模式:

  • ECB - Emacs的代码浏览器。用它来进行项目管理,并绕过你的代码。
  • Yasnippet - 提供各种有用的片段,自动插入TAB键。
  • Nxhtml - 对于编辑RHTML,雇员再培训局等

更多的模式,你可以尝试:

  • Ri - 用于查看文档里嵌入。
  • Flymake-ruby - 即时语法检查。
  • Ri - 用于查看文档里

哦,当然你需要红宝石模式,其自带的红宝石源,并通过自己马茨维护。

希望这有助于

+0

崇高的答案,谢谢!你能否提供一些关于Rinari和Emacs-rails-reloaded一起玩的细节? – aL3xa 2012-01-13 02:37:12

+0

说实话我不再使用emacs-rails-reloaded。它自2009年以来一直未更新,我甚至不确定它是否适用于更新版本的Rails。最近我发现Rinari是我需要导航一个rails应用程序的所有东西。 – thermans 2012-01-15 14:36:18

5

rspec-mode(运行容易单个或多个规范)

js2-mode(JavaScript语法高亮)

ido(查找文件/项目中的缓冲超快速)

3

由于我是rails(和emacs)的新手,我不想马上使用rinari。我发现如果一个工具对我来说有太多的魔力,我就不会像我想的那样快速地学习细节。我想我会最终使用它。然而,现在,我设置了一堆我在emacs中为RAILS 3生成的shell,并在它们之间切换以完成我的工作。我用tmr加前缀以便我可以轻松找到它们。

(defun tmr-spork-shell() 
     "Invoke spork shell" ; Spork - love that name 
     (interactive) 
     (pop-to-buffer (get-buffer-create (generate-new-buffer-name "spork"))) 
     (shell (current-buffer)) 
     (process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc 
     (process-send-string nil "spork\n")) 

    (defun tmr-devlog-shell() 
     "Tail the development log, shell" 
     (interactive) 
     (pop-to-buffer (get-buffer-create (generate-new-buffer-name "devlog"))) 
     (shell (current-buffer)) 
     (process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc 
     (process-send-string nil "tail -f log/development.log\n")) 

    (defun tmr-testlog-shell() 
     "Tail the test log, shell" 
     (interactive) 
     (pop-to-buffer (get-buffer-create (generate-new-buffer-name "testlog"))) 
     (shell (current-buffer)) 
     (process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc 
     (process-send-string nil "tail -f log/test.log\n")) 

    (defun tmr-server-shell() 
     "Invoke rails ui server shell" 
     (interactive) 
     (pop-to-buffer (get-buffer-create (generate-new-buffer-name "server"))) 
     (shell (current-buffer)) 
     (process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc 
     (process-send-string nil "rails s\n")) 

    (defun tmr-db-shell() 
     "Invoke rails dbconsole shell" 
     (interactive) 
     (pop-to-buffer (get-buffer-create (generate-new-buffer-name "dbconsole"))) 
     (shell (current-buffer)) 
     (process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc 
     (process-send-string nil "rails dbconsole\n")) 

    (defun tmr-console-shell() 
     "Invoke rails console shell" 
     (interactive) 
     (pop-to-buffer (get-buffer-create (generate-new-buffer-name "console"))) 
     (shell (current-buffer)) 
     (process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc 
     (process-send-string nil "rails console\n")) 

    ; I like to run all my tests in the same shell 
    (defun tmr-rspec-shell() 
     "Invoke rspec shell" 
     (interactive) 
     (pop-to-buffer (get-buffer-create (generate-new-buffer-name "rspec"))) 
     (shell (current-buffer)) 
     (process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc 
     (process-send-string nil "rspec spec\n")) ; This is debatable, since spork wont be up yet 

    ; The shell where I do most of my work 
    (defun tmr-shell() 
     "Invoke plain old shell" 
     (interactive) 
     (pop-to-buffer (get-buffer-create (generate-new-buffer-name "sh"))) 
     (shell (current-buffer)) 
     (process-send-string nil "cd .\n")); makes sure rvm variables set with .rvmrc 

    ; My everyday ide 
    (defun tmr-ide-lite() 
     "Spawn several shells for a mini Rails IDE" 
     (interactive) 
     (progn (tmr-spork-shell) 
      (tmr-shell) 
      (tmr-server-shell) 
      (tmr-rspec-shell))) 

    ; When I am doing a big debug session 
    (defun tmr-ide-full() 
     "Spawn several shells for a full Rails IDE" 
     (interactive) 
     (progn (tmr-spork-shell) 
      (tmr-shell) 
      (tmr-server-shell) 
      (tmr-console-shell) 
      (tmr-db-shell) 
      (tmr-devlog-shell) 
      (tmr-testlog-shell) 
      (tmr-rspec-shell))) 
2

另一种我觉得有用的未提及的模式是web-mode。这对编写视图非常有用,并且很好地处理.html.erb文件。它具有语法高亮和标记完成等功能。你可以在here找到它。

相关问题