2010-05-04 14 views

risposta

7

Le versioni precedenti di entrambe le modalità emacs-rails e Rinari (le due modalità più diffuse per lo sviluppo di Rails) erano molto ricche, ma gonfie e ingombranti. Per mantenere un nucleo piccolo, pulito, affidabile, funzionale e hackerabile, Rinari eviterà gran parte delle funzionalità di tipo "campane e fischietti". Tuttavia, ciò non vuol dire che questi extra extra potrebbero non essere utili.

Questa pagina deve fungere da punto di marshalling per i collegamenti ad altri strumenti/pacchetti che funzionano bene con Rinari e Rails in generale. Se hai qualche idea per le aggiunte a questo elenco, o per le nuove funzionalità di Rinari, faccelo sapere allo http://groups.google.com/group/emacs-on-rails.

Modalità principali essenziali per lavorare con Rails

La maggior parte di questo materiale è copiata dalla documentazione di Rinari. Come avrai intuito, preferisco Rinary su emacs-rails. Osservando l'attività di entrambi i progetti, emacs-rails non ha subito cambiamenti per circa un anno, mentre il rinary è ancora in fase di sviluppo.

+0

Sulla base della sua descrizione, Rinari suona proprio come quello che sto cercando, ma la versione corrente ospitata su Github è rotta, come ho notato in [questo commento] (http://stackoverflow.com/questions/2713096/emacs-rails-vs-rinari#comment17458856_2736256). –

+0

Personalmente uso [Emacs Prelude] (http://github.com/bbatsov/prelude) per lo sviluppo di Rails. L'estensione 'projectile' che è in bundle mi fornisce le funzionalità di navigazione del progetto di cui ho bisogno e non mi interessa il resto delle funzionalità di Rinari. –

+0

Ho aggiunto una risposta su 'proiettile'. A proposito, eri troppo modesto per dire che è il tuo lavoro. :) –

0

Ho provato il Aptana Studio IDE (open-source), che gestisce i progetti Rails.Ho scoperto che lo utilizzavo principalmente per navigare tra i file di un progetto Rails, e dal momento che preferisco usare Emacs per modificare i file comunque, per ora ho impostato Aptana. (Ma potrebbe tornare utile in seguito quando si esegue il debug, quindi non lo escludo completamente.)

Ho recentemente provato diverse estensioni Emacs per aiutare con lo sviluppo di Rails: ECB (Emacs Code Browser), Rinari, e qualcos'altro di cui mi dimentico, di cui non ero affatto contento, o che non potevo lavorare. Tuttavia, ora sto usando felicemente projectile, che Bozhidar Batsov ha menzionato in un commento sopra. Aggiunge convenienza alla ricerca di file all'interno di un progetto e al loro consumo. Non è specifico solo per i progetti di Rails.

Un altro Emacs molto utile add-on che ho recentemente scoperto è l'estensione tabbar, che funziona un po 'come bar tab del browser. Ho legato la navigazione tra le schede aperte ai miei tasti M-leftarrow e M-rightarrow, il che rende il passaggio tra i buffer molto più conveniente di prima.

Continuando con Emcas, c'è bubble-buffer (codice qui sotto), con la quale posso solo premere un tasto (F5 nel mio caso) per passare il contenuto del buffer in un file visitato di recente - anche se tabbar rende questo un po 'superfluo. Sto anche includendo il codice per eliminare immediatamente un buffer con C-DEL, oltre a un paio di piccole funzioni che consentono di scorrere su e giù un buffer mantenendo il punto costante, a patto che non si spenga schermo; il codice qui li lega al tastierino numerico * e /. (Nessuno di questi è il mio lavoro.)

;; 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) 
Problemi correlati