Tips and tricks for using emacs to develop a ruby on rails app

后端 未结 4 684
醉话见心
醉话见心 2021-02-01 04:05

What are the best modes, configuration settings, or anything that makes developing a ruby on rails app in emacs better.

4条回答
  •  被撕碎了的回忆
    2021-02-01 04:41

    Since I am new to rails (and emacs), I don't want to use rinari right away. I find that if a tool does too much magic for me I don't learn the details as quickly as I would like. I think I will use it eventually. For now, however, I set up a bunch of shells that I spawn in emacs for RAILS 3 and just switch between them to do my work. I prefix them with tmr so that I can easily find them.

       (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)))
    

提交回复
热议问题