バッファをリロードする方法がEmacsで現在開いてるバッファを再読込する - Qiitaで書かれてるんだけど、メジャーモードを保持していてもらいたかったのでちょっと修正した:

(defun revert-buffer-no-confirm (&optional force-reverting)
  "Interactive call to revert-buffer. Ignoring the auto-save                                         
 file and not requesting for confirmation. When the current buffer                                   
 is modified, the command refuses to revert it, unless you specify                                   
 the optional argument: force-reverting to true."
  (interactive "P")
  ;;(message "force-reverting value is %s" force-reverting)                                          
  (if (or force-reverting (not (buffer-modified-p)))
      (let ((mm (with-current-buffer (current-buffer)
                  major-mode)))
        (revert-buffer :ignore-auto :noconfirm)
        (with-current-buffer (current-buffer) (funcall mm)))
    (error "The buffer has been modified")))

;; reload buffer                                                                                     
(global-set-key "\M-r" 'revert-buffer-no-confirm)

読み込み前のメジャーモードを保持しておいて、リロード後に再適用する。