2010-05-04 3 views

ответ

7

Предыдущие версии режима emacs-rails и Rinari (два самых популярных режима для разработки Rails) были очень функциональными, но раздутыми и громоздкими. Для поддержания небольшого, чистого, надежного, функционального и взломанного ядра Rinari будет избегать многих функций типа «колокола и свистки». Однако это не означает, что эти дополнительные лакомства могут оказаться нецелесообразными.

Эта страница должна служить точкой маршалинга для ссылок на другие инструменты/пакеты, которые хорошо работают с Rinari и Rails в целом. Если у вас есть идеи для добавления в этот список или для новых функций Rinari, пожалуйста, сообщите нам об этом в http://groups.google.com/group/emacs-on-rails.

Essential Основные режимы работы с Rails

Большая часть этого материала копируется из документации Ринари. Как вы, возможно, догадались, я предпочитаю Rinary over emacs-rails. Рассматривая деятельность обоих проектов, emacs-rails не изменилась примерно на год, в то время как разрастание разрастается.

+0

Основываясь на своем описании, Rinari звучит так же, как и я, но текущая версия, размещенная на Github, сломана, как я заметил в [этом комментарии] (http://stackoverflow.com/questions/2713096/emacs-rails-vs-rinari#comment17458856_2736256). –

+0

Лично я использую [Emacs Prelude] (http://github.com/bbatsov/prelude) для разработки Rails. Расширение «снаряда», которое поставляется в комплекте, дает мне необходимые функции навигации по проекту, и мне не нравятся остальные функции Rinari. –

+0

Я добавил ответ о «снаряде». Кстати, вы были слишком скромны, чтобы упомянуть, что это ваша работа. :) –

0

Я пробовал Aptana Studio IDE (open-source), который обрабатывает проекты Rails.Я обнаружил, что в основном я использовал его для навигации по файлам проекта Rails, и поскольку я предпочитаю использовать Emacs для редактирования файлов в любом случае, я сейчас отложил Aptana. (Но это может пригодиться позже, когда вы делаете отладку, поэтому я не полностью ее отклоняю.)

Недавно я попробовал разные расширения Emacs для разработки Rails: ECB (Emacs Code Browser), Rinari и что-то другое, о чем я забыл, ни один из которых я не был полностью доволен, или не мог работать. Тем не менее, я сейчас с удовольствием использую projectile, о котором упомянул Божидар Бацов в комментарии выше. Это добавляет удобство поиска файлов внутри проекта и grepping внутри них. Это не относится только к проектам Rails.

Другой очень полезный Emacs надстройку я недавно обнаружил, расширение tabbar, который работает немного как панель вкладок браузера. Я привязал навигацию между открытыми вкладками к моим клавишам M-leftarrow и M-rightarrow, что делает переключение между буферами намного более удобным, чем раньше.

Продолжая Emcas, есть bubble-buffer (код ниже), с помощью которого я могу просто нажать клавишу (F5 в моем случае), чтобы включить содержимое буфера недавно просмотренный файл - хотя tabbar делает это немного излишней. Я также включаю код для немедленного уничтожения буфера с помощью C-DEL, а также несколько приятных небольших функций, которые позволяют прокручивать вверх и вниз буфер, сохраняя постоянную точку, пока она не исчезает экран; код здесь связывает их с цифровой клавиатурой * и /. (Ни одна из них не является моей собственной работой.)

;; 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) 
Смежные вопросы