Какие полезные возможности Emacs для разработки Rails - PullRequest
11 голосов
/ 04 мая 2010

Какие функции, пакеты, надстройки и т. Д. Emacs помогают вам в повседневной разработке Ruby On Rails?

Ответы [ 3 ]

7 голосов
/ 05 мая 2010

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

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

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

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

4 голосов
/ 04 мая 2010

Я использую emacs-rails и некоторые режимы для редактирования css, js ( espresso-mode ), haml, sass, yaml и режима сниппета ( yas-сниппет) ). Для обзора загляните на вики-страницы emacs по Ruby on Rails. .

0 голосов
/ 16 октября 2012

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

Я недавно пробовал разные расширения Emacs, чтобы помочь с разработкой Rails: ECB (Emacs Code Browser), Rinari и кое-что еще, о чем я забыл, ни одно из которых меня не порадовало или не могло заставить работать. Тем не менее, я теперь с радостью использую projectile, о котором Божидар Бацов упомянул в комментарии выше. Это добавляет удобство для поиска файлов в проекте и поиска в них. Это также не относится только к 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...