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

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

Ответы [ 4 ]

29 голосов
/ 12 марта 2010

Вы должны попробовать все RoR и выбрать тот, который вам больше нравится.

Сначала вы должны проверить превосходный скринкаст Маршалла Вандегрифта с использованием ECB, ruby-mode, emacs-rails и некоторых других вещей. Это дает вам хорошее представление о том, насколько круто писать RoR на Emacs.

Вкратце вот некоторые из режимов, которые вы должны попробовать:

  • Rinari - Простая структура для обхода вашего кода, выполнения тестов и управления консолями, веб-серверами и т. Д. Она минималистична и вращается вокруг ряда сочетаний клавиш.
  • Emacs-rails - дедушка Emacs RoR режимов. Это не было обновлено некоторое время, и фактически основная домашняя страница больше не существует. Но он достаточно мощный и позволяет вам делать практически все.
  • Emacs-rails-reloaded - Я считаю, что это ре-дизайн оригинальных emacs-rails от того же парня. Он использует отличный режим что-нибудь , чтобы помочь вам найти вещи и обойти. Я использую это И Ринари в настоящее время.

Вот некоторые другие полезные режимы:

  • ECB - Emacs Code Browser. Используйте его для управления проектами и обхода вашего кода.
  • Yasnippet - предоставляет все виды полезных фрагментов, автоматически вставляемых с помощью клавиши TAB.
  • Nxhtml - для редактирования rhtml, erb и т. Д.

Больше режимов, которые вы можете попробовать:

  • Ri - для просмотра встроенной документации.
  • Flymake-ruby - проверка синтаксиса на лету.
  • Ri - для просмотра документации

Да, и, конечно, вам нужен режим ruby, который поставляется с источником ruby ​​и поддерживается самим Матцем.

Надеюсь, это поможет

6 голосов
/ 12 марта 2010

rspec-mode (легко запустить одну или несколько спецификаций)

js2-mode (подсветка синтаксиса JavaScript)

ido (найти файлы / буферы в вашем проекте очень быстро)

4 голосов
/ 11 ноября 2010

Так как я новичок в 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)))
3 голосов
/ 19 июня 2014

Другой режим, который я считаю полезным, который не был упомянут, это web-mode. Это полезно для написания представлений и очень хорошо обрабатывает файлы .html.erb. Среди прочего, он имеет подсветку синтаксиса и завершение тегов. Вы можете найти его на здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...