2010-05-04 19 views

Respuesta

7

Las versiones anteriores del modo emacs-rails y Rinari (los dos modos más populares para el desarrollo de Rails) eran muy completas, pero hinchadas y engorrosas. Para mantener un núcleo pequeño, limpio, confiable, funcional y pirateable, Rinari evitará muchas de las funciones tipo "campanas y silbatos". Sin embargo, eso no quiere decir que estos extras no sean útiles.

Esta página debería servir como punto de referencia para los enlaces a algunas otras herramientas/paquetes que funcionan bien con Rinari y Rails en general. Si tiene alguna idea para agregar a esta lista, o para las nuevas características de Rinari, comuníquenoslo al http://groups.google.com/group/emacs-on-rails.

Esenciales Modos principales para trabajar con rieles

La mayoría de estas cosas se copia de la documentación de Rinari. Como habrás adivinado, prefiero Rinary sobre emacs-rails. Viendo la actividad de ambos proyectos, emacs-rails no ha tenido ningún cambio durante un año aproximadamente, mientras que rinary aún se está desarrollando.

+0

Basado en su descripción, Rinari suena exactamente como lo que estoy buscando, pero la versión actual alojada en Github está rota, como noté en [este comentario] (http://stackoverflow.com/questions/2713096/emacs-rails-vs-rinari#comment17458856_2736256). –

+0

Personalmente utilizo [Preludio de Emacs] (http://github.com/bbatsov/prelude) para el desarrollo de Rails. La extensión 'projectile' que está incluida me da las características de navegación del proyecto que necesito y realmente no me importa el resto de las características de Rinari. –

+0

Agregué una respuesta sobre 'projectile'. Por cierto, fuiste demasiado modesto para mencionar que es tu trabajo. :) –

0

Probé el Aptana Studio IDE (código abierto), que maneja los proyectos de Rails.Descubrí que lo usaba principalmente para navegar entre los archivos de un proyecto de Rails, y dado que prefiero usar Emacs para editar archivos de todos modos, por ahora he apartado a Aptana. (Pero podría ser útil más adelante cuando realice la depuración, así que no lo descartaré por completo).

Recientemente he intentado diferentes extensiones de Emacs para ayudar con el desarrollo de Rails: ECB (navegador de códigos Emacs), Rinari y algo más de lo que me olvido, ninguno de los cuales me hizo feliz, o no pude trabajar. Sin embargo, ahora estoy felizmente usando projectile, que Bozhidar Batsov mencionó en un comentario anterior. Agrega conveniencia para encontrar archivos dentro de un proyecto y agruparlos. No solo es específico para los proyectos de Rails.

Otro Emacs muy útil complemento que he descubierto recientemente es la extensión tabbar, que funciona un poco como barras de tabulación de un navegador. He vinculado la navegación entre pestañas abiertas a mis teclas M-leftarrow y M-rightarrow, lo que hace que el cambio entre buffers sea mucho más conveniente que antes.

Continuando con Emcas, hay bubble-buffer (por debajo de código), con la que sólo puedo presionar una tecla (F5 en mi caso) para cambiar el contenido del búfer en un archivo visitada recientemente - aunque tabbar hace esto un poco superfluo. También incluyo el código para matar un búfer inmediatamente con C-DEL, más un par de pequeñas y agradables funciones que hacen posible desplazarse hacia arriba y hacia abajo en un búfer manteniendo el punto constante, siempre que no se apague. pantalla; el código aquí los vincula al teclado numérico * y /. (Ninguno de estos es mi propio trabajo.)

;; Use F5 to switch between buffers. Use C-DEL to remove the current buffer 
;; from the stack and retrieve the next buffer. The most-frequented buffers are 
;; always on the top of the stack. (Copied, with changes and a bugfix, from 
;; http://geosoft.no/development/emacs.html.) 
(defvar LIMIT 1) 
(defvar time 0) 
(defvar mylist nil) 
(defun time-now() 
    (car (cdr (current-time)))) 
(defun bubble-buffer() 
    (interactive) 
    (if (or (> (- (time-now) time) LIMIT) (null mylist)) 
     (progn (setq mylist (copy-alist (buffer-list))) 
      (delq (get-buffer " *Minibuf-0*") mylist) 
      (delq (get-buffer " *Minibuf-1*") mylist))) 
    (bury-buffer (car mylist)) 
    (setq mylist (cdr mylist)) 
    (setq newtop (car mylist)) 
    (switch-to-buffer (car mylist)) 
    (setq rest (cdr (copy-alist mylist))) 
    (while rest 
    (bury-buffer (car rest)) 
    (setq rest (cdr rest))) 
    (setq time (time-now))) 
(global-set-key [f5] 'bubble-buffer) 
(defun kill-buffer-without-questions() 
    ;; Kill default buffer without the extra emacs questions 
    (interactive) 
    (kill-buffer (buffer-name))) 
(global-set-key [C-delete] 'kill-buffer-without-questions) 

;; Scroll up and down without moving the cursor by pressing the numeric keypad's 
;; "/" and "*" keys. 
(defun scroll-down-keep-cursor() 
    ;; Scroll the text one line down while keeping the cursor 
    (interactive) 
    (scroll-down 1)) 
(defun scroll-up-keep-cursor() 
    ;; Scroll the text one line up while keeping the cursor 
    (interactive) 
    (scroll-up 1)) 
(global-set-key [kp-divide] 'scroll-down-keep-cursor) 
(global-set-key [kp-multiply] 'scroll-up-keep-cursor) 
Cuestiones relacionadas