2010-03-11 12 views

Respuesta

28

Debería probar todo el RoR e instalarse en el que más le guste.

Primero debe consultar el excellent screencast de Marshall Vandegrift usando ECB, ruby-mode, emacs-rails, y algunas otras cosas. Te da una buena idea de lo genial que es escribir RoR en Emacs.

En resumen aquí son algunos de los modos debería probar:

  • Rinari - Un marco sencillo para moverse por su código, la ejecución de pruebas, y la gestión de consolas, servidores web, etc. Es minimalista y gira alrededor de una serie de enlaces clave.
  • Emacs-rails - el abuelo de los modos Emacs RoR. No se ha actualizado en un momento, y de hecho, la página principal ya no existe. Pero es bastante poderoso y te permite hacer casi todo.
  • Emacs-rails-reloaded - Este es un rediseño de los raíles emacs originales, creo que por el mismo tipo. Utiliza el gran modo anything para ayudarte a encontrar cosas y moverte. Estoy usando esto Y rinari actualmente.

Éstos son algunos otros modos que son útiles:

  • ECB - El navegador de código Emacs. Úselo para la gestión de proyectos y para evitar su código.
  • Yasnippet - proporciona todo tipo de fragmentos útiles, insertados automáticamente con la tecla TAB.
  • Nxhtml - Para RHTML edición, erb, etc.

Más modos puede probar:

  • Ri - ri para su visualización en línea documentación.
  • Flymake-ruby - comprobación de la sintaxis sobre la marcha.
  • Ri - permite ver la documentación ri

Ah, y por supuesto que necesita rubí modo, que viene con la fuente de rubí, y se mantiene por sí mismo Matz.

Esperanza esto ayuda

+0

¡Respuesta sublime, gracias! ¿Podrían darnos más detalles sobre cómo juegan juntos Rinari y Emacs-rails-reloaded? – aL3xa

+0

Para ser sincero, ya no uso emacs-rails-reloaded. No se ha actualizado desde 2009 y ni siquiera estoy seguro de que funcione con las versiones más recientes de los rieles. Últimamente he descubierto que Rinari es todo lo que necesito para navegar en una aplicación de rieles. – thermans

5

rspec-mode (ejecutar las especificaciones individuales o múltiples con facilidad)

js2-mode (JavaScript resaltado de sintaxis)

ido (encontrar archivos/tampones en su proyecto súper rápido)

3

Como soy nuevo en rails (y emacs), no quiero usar rinari de inmediato. Encuentro que si una herramienta hace demasiada magia para mí, no aprendo los detalles tan rápido como me gustaría. Creo que lo usaré eventualmente.Por ahora, sin embargo, configuré un montón de proyectiles que engendré en emacs para RAILS 3 y simplemente cambio entre ellos para hacer mi trabajo. Los prefiero con tmr para que pueda encontrarlos fácilmente.

(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

Otro modo que me parece útil que no se ha mencionado es web-mode. Es útil para escribir vistas y maneja muy bien los archivos .html.erb. Incluye resaltado de sintaxis y finalización de etiquetas, entre otras cosas. Puede encontrarlo en here.

Cuestiones relacionadas