从 emacs keybind 关闭 R plot window

Close R plot window from emacs keybind

每当我在 emacs ESS 中绘制 R 图形时,它都会打开一个新的 window。有直接从emacs关闭的命令吗?

我试图在我的 init.el 文件中使用

之类的东西创建一个键绑定
(setq ess-dev-off ‘(“dev.off()\n”)))
(eval-after-load “ess-mode”
  ‘(progn 
    (define-key dev-off “\C-cp” ‘ess-dev-off))

但当然是行不通的。关于如何为此定义我自己的键绑定的一些建议?

您可以使用 ess-send-string,

将 R 代码发送到下级进程
(defun my-dev-off ()
  (interactive)
  (let ((proc (ess-get-process)))
    (ess-send-string proc "dev.off()")))

(with-eval-after-load 'ess-r-mode
  (define-key ess-r-mode-map (kbd "C-c p") #'my-dev-off))

如果你想将一个函数绑定到一个键绑定,该函数需要一个 interactive 函数,即。一个用 (interactive) 定义为它的主体中的第一个形式。