Каковы наилучшие режимы, настройки конфигурации или что-нибудь, что улучшает разработку рубинов в приложении rails в emacs.
Советы и рекомендации по использованию emacs для разработки приложения ruby on rails
Ответ 1
Вы должны попробовать все RoR и обосноваться на том, который вам больше нравится.
Сначала вы должны проверить Marshall Vandegrift отличный скринкаст с использованием ECB, рубинового режима, emacs-rails и некоторых других вещей. Это дает вам хорошее представление о том, насколько прохладно писать RoR на Emacs.
Короче, вот некоторые из режимов, которые вы должны попробовать:
- Rinari - простая структура для обойти ваш код, запуск тестов и управление консолями, веб-серверами и т.д. Это минималистичный и вращается вокруг ряда привязок клавиш.
- Emacs-rails - дед режимов Emacs RoR. Он не обновлялся через некоторое время, и на самом деле первичная домашняя страница больше не существует. Но он достаточно мощный и позволяет делать практически все.
- Emacs-rails-reloaded - Это перепроектирование оригинальных emacs-рельсов, я считаю одним и тем же парнем. Он использует режим anything, чтобы помочь вам найти вещи и обойти. Я использую этот И ринари в настоящее время.
Вот некоторые полезные режимы:
- ECB - Браузер кода Emacs. Используйте его для управления проектами и обойти свой код.
- Yasnippet - предоставляет всевозможные полезные фрагменты, автоматически вставленные с помощью клавиши TAB.
- Nxhtml - для редактирования rhtml, erb и т.д.
Другие режимы, которые вы можете попробовать:
- Ri - для просмотра встроенной документации ri.
- Flymake-ruby - проверка синтаксиса на лету.
- Ri - для просмотра документации ri
О, и, конечно, вам нужен рубиновый режим, который поставляется с рубиновым источником и поддерживается самим Мацем.
Надеюсь, что это поможет
Ответ 2
rspec-mode
(легко запускайте одиночные или множественные спецификации)
js2-mode
(подсветка синтаксиса JavaScript)
ido
(быстро найти файлы/буферы в вашем проекте)
Ответ 3
Поскольку я новичок в rails (и emacs), я не хочу сразу использовать rinari. Я считаю, что если инструмент слишком мал для меня, я не узнаю детали так быстро, как хотелось бы. Я думаю, что буду использовать его в конце концов. На данный момент, однако, я создал кучу оболочек, которые я создаю в emacs для RAILS 3 и просто переключаюсь между ними, чтобы выполнять свою работу. Я префикс их tmr, чтобы я мог легко их найти.
(defun tmr-spork-shell ()
"Invoke spork shell" ; Spork - love that name
(interactive)
(pop-to-buffer (get-buffer-create (generate-new-buffer-name "spork")))
(shell (current-buffer))
(process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc
(process-send-string nil "spork\n"))
(defun tmr-devlog-shell ()
"Tail the development log, shell"
(interactive)
(pop-to-buffer (get-buffer-create (generate-new-buffer-name "devlog")))
(shell (current-buffer))
(process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc
(process-send-string nil "tail -f log/development.log\n"))
(defun tmr-testlog-shell ()
"Tail the test log, shell"
(interactive)
(pop-to-buffer (get-buffer-create (generate-new-buffer-name "testlog")))
(shell (current-buffer))
(process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc
(process-send-string nil "tail -f log/test.log\n"))
(defun tmr-server-shell ()
"Invoke rails ui server shell"
(interactive)
(pop-to-buffer (get-buffer-create (generate-new-buffer-name "server")))
(shell (current-buffer))
(process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc
(process-send-string nil "rails s\n"))
(defun tmr-db-shell ()
"Invoke rails dbconsole shell"
(interactive)
(pop-to-buffer (get-buffer-create (generate-new-buffer-name "dbconsole")))
(shell (current-buffer))
(process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc
(process-send-string nil "rails dbconsole\n"))
(defun tmr-console-shell ()
"Invoke rails console shell"
(interactive)
(pop-to-buffer (get-buffer-create (generate-new-buffer-name "console")))
(shell (current-buffer))
(process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc
(process-send-string nil "rails console\n"))
; I like to run all my tests in the same shell
(defun tmr-rspec-shell ()
"Invoke rspec shell"
(interactive)
(pop-to-buffer (get-buffer-create (generate-new-buffer-name "rspec")))
(shell (current-buffer))
(process-send-string nil "cd .\n"); makes sure rvm variables set with .rvmrc
(process-send-string nil "rspec spec\n")) ; This is debatable, since spork wont be up yet
; The shell where I do most of my work
(defun tmr-shell ()
"Invoke plain old shell"
(interactive)
(pop-to-buffer (get-buffer-create (generate-new-buffer-name "sh")))
(shell (current-buffer))
(process-send-string nil "cd .\n")); makes sure rvm variables set with .rvmrc
; My everyday ide
(defun tmr-ide-lite ()
"Spawn several shells for a mini Rails IDE"
(interactive)
(progn (tmr-spork-shell)
(tmr-shell)
(tmr-server-shell)
(tmr-rspec-shell)))
; When I am doing a big debug session
(defun tmr-ide-full ()
"Spawn several shells for a full Rails IDE"
(interactive)
(progn (tmr-spork-shell)
(tmr-shell)
(tmr-server-shell)
(tmr-console-shell)
(tmr-db-shell)
(tmr-devlog-shell)
(tmr-testlog-shell)
(tmr-rspec-shell)))
Ответ 4
Другой способ, который я считаю полезным, который не упоминался, web-mode
. Это полезно для написания представлений и очень хорошо обрабатывает файлы .html.erb. Среди прочего он включает подсветку синтаксиса и завершение тегов. Вы можете найти его в здесь.