Какие функции (ами) Emacs, пакеты, надстройки и т.д. помогают вам в ежедневной разработке Ruby On Rails?
Какие полезные функции Emacs для разработки Rails
Ответ 1
Предыдущие версии обоих emacs-rails и Rinari (два самых популярных режима для разработки Rails) были очень функциональными, но раздутыми и громоздкими. Для поддержания небольшого, чистого, надежного, функционального и взломанного ядра Rinari будет избегать многих функций типа "колокола и свистки". Однако это не означает, что эти дополнительные лакомства могут оказаться непригодными.
Эта страница должна служить точкой маршалинга для ссылок на некоторые другие инструменты/пакеты, которые хорошо работают с Rinari и Rails в целом. Если у вас есть идеи для добавления в этот список или для новых функций Rinari, пожалуйста, сообщите нам об этом http://groups.google.com/group/emacs-on-rails.
Основные основные режимы работы с Rails
-
Режим Ruby и некоторые другие общие Ruby-Emacs лакомства можно найти в каталог /misc вашего рубина распределения и http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/misc/ (он также поставляется по умолчанию с Emacs 23.1)
-
Режим CSS http://www.emacswiki.org/cgi-bin/emacs/css-mode-simple.el
-
Режим JavaScript http://www.emacswiki.org/cgi-bin/wiki/JavaScriptMode#toc1 Другие инструменты
-
Режим мажорного режима Rhtml для редактирования Файлы rhtml (без MMM-режима) см. RHTML-режим
-
Отрывки http://code.google.com/p/yasnippet/ и фрагменты Rails http://github.com/eschulte/yasnippets-rails/tree/master
-
поддержка ruby-debug http://groups.google.com/group/emacs-on-rails/browse_thread/thread/dfaa224905b51487
-
ido Mode http://www.emacswiki.org/cgi-bin/wiki/InteractivelyDoThings
-
nxhtml-mode - лучший режим для веб-разработки в Emacs - отличная альтернатива rhtml-mode для редактирования файлов erb среди многих других вещей.
Большая часть этого материала копируется из документации Rinari. Как вы, возможно, догадались, я предпочитаю Rinary over emacs-rails. Рассматривая деятельность обоих проектов, emacs-rails не изменилась примерно на год, в то время как все еще разрабатывается rinary.
Ответ 2
Я использую emacs-rails
и некоторые режимы для редактирования css, js (эспрессо-режим), haml, sass, yaml и режим фрагмента (yas-snippet). Для обзора просмотрите страницы wiki emacs на Ruby on Rails..
Ответ 3
Я попробовал 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)