是否有可能在Emacs中评估整个缓冲区?

gri*_*yvp 14 emacs

目前,为了评估Emacs中的elist,我需要将光标定位在最后一个括号上并发出C-x e.

是否可以将整个缓冲区评估为单个elisp程序而无需定位光标?

Dan*_*lan 24

M-x eval-buffer
Run Code Online (Sandbox Code Playgroud)

Alt+ x然后键入'eval-buffer'或只键入部分内容并使用Tab键自动完成.


thi*_*irs 12

我把它放在我的.emacs!如果有一个或整个缓冲区,它允许您评估区域.我把它绑定了C-xE.

(defun eval-region-or-buffer ()
  (interactive)
  (let ((debug-on-error t))
    (cond
     (mark-active
      (call-interactively 'eval-region)
      (message "Region evaluated!")
      (setq deactivate-mark t))
     (t
      (eval-buffer)
      (message "Buffer evaluated!")))))

(add-hook 'emacs-lisp-mode-hook
          (lambda ()
            (local-set-key (kbd "C-x E") 'eval-region-or-buffer)))
Run Code Online (Sandbox Code Playgroud)