Подтвердить что ты не робот

Советы и рекомендации по использованию emacs для разработки приложения ruby ​​on rails

Каковы наилучшие режимы, настройки конфигурации или что-нибудь, что улучшает разработку рубинов в приложении rails в emacs.

4b9b3361

Ответ 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. Среди прочего он включает подсветку синтаксиса и завершение тегов. Вы можете найти его в здесь.