2010-05-04 6 views

Répondre

7

Les versions précédentes des modes emacs-rails et Rinari (les deux modes les plus populaires pour le développement de Rails) étaient très riches en fonctionnalités, mais elles étaient gonflées et encombrantes. Pour maintenir un noyau petit, propre, fiable, fonctionnel et hackable, Rinari évite la plupart des fonctionnalités de type «cloches et sifflets». Cependant, cela ne veut pas dire que ces bonus supplémentaires pourraient ne pas être utiles.

Cette page devrait servir de point de marshaling pour les liens vers d'autres outils/paquets qui fonctionnent bien avec Rinari et Rails en général. Si vous avez des idées pour des ajouts à cette liste, ou pour de nouvelles fonctionnalités Rinari s'il vous plaît laissez-nous savoir au http://groups.google.com/group/emacs-on-rails.

essentielles Modes Majeurs pour travailler avec Rails

La plupart de ces éléments sont copiés à partir de la documentation de Rinari. Comme vous avez pu le deviner, je préfère Rinary sur emacs-rails. En regardant l'activité des deux projets - emacs-rails n'a pas eu de changements depuis environ un an, alors que rinary est encore en cours de développement.

+0

D'après sa description, Rinari ressemble exactement à ce que je cherche, mais la version actuelle hébergée sur Github est cassée, comme je l'ai noté dans [ce commentaire] (http://stackoverflow.com/questions/2713096/emacs-rails-vs-rinari#comment17458856_2736256). –

+0

Personnellement, j'utilise [Emacs Prelude] (http://github.com/bbatsov/prelude) pour le développement de Rails. L'extension 'projectile' qui est fournie me donne les fonctionnalités de navigation du projet dont j'ai besoin et je ne me soucie pas vraiment du reste des fonctionnalités de Rinari. –

+0

J'ai ajouté une réponse à propos de 'projectile'. Au fait, vous étiez trop modeste pour mentionner que c'est votre travail. :) –

0

J'ai essayé le Aptana Studio IDE (open-source), qui gère les projets Rails.J'ai trouvé que je l'utilisais surtout pour naviguer parmi les fichiers d'un projet Rails, et puisque je préfère utiliser Emacs pour éditer des fichiers de toute façon, j'ai mis Aptana de côté pour l'instant. (Mais il pourrait être utile plus tard lors du débogage, donc je ne le rejette pas complètement.)

J'ai récemment essayé différentes extensions Emacs pour aider au développement de Rails: ECB (Emacs Code Browser), Rinari, et quelque chose d'autre que j'oublie, dont je n'étais pas entièrement satisfait ou incapable de travailler. Cependant, je suis maintenant heureux d'utiliser projectile, dont Bozhidar Batsov mentionné dans un commentaire ci-dessus. Cela ajoute de la commodité à la recherche de fichiers dans un projet et à leur intégration dans un projet. Ce n'est pas spécifique aux seuls projets Rails, non plus.

Un autre très utile Emacs add-on que j'ai récemment découvert est l'extension tabbar, qui fonctionne un peu comme les barres de l'onglet d'un navigateur. J'ai lié la navigation entre les onglets ouverts à mes touches M-leftarrow et M-rightarrow, ce qui rend la commutation parmi les tampons beaucoup plus pratique qu'avant.

Poursuivant Emcas, il y a bubble-buffer (code ci-dessous), avec lequel je peux appuyer sur une touche (F5 dans mon cas) pour changer le contenu du tampon dans un fichier récemment visité - même si tabbar fait un peu superflu. J'inclus également du code pour tuer immédiatement un tampon avec C-DEL, plus quelques petites fonctions qui permettent de faire défiler un buffer tout en gardant le point constant, tant qu'il ne disparaît pas écran; le code les lie aux touches * et / du clavier numérique. (Aucun d'entre eux sont mon propre travail.)

;; 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) 
Questions connexes