0

我的.emacs文件中有以下代码段,用于打开和关闭框架内给定 Emacs 窗口(即窗格)的最大化。在引入 Emacs 24.3 之前,这段代码运行良好

(defun toggle-maximize-buffer () "Maximize buffer"
  (interactive)
  (if (= 1 (length (window-list)))
    (jump-to-register '_)
    (progn
      (set-register '_ (list (current-window-configuration)))
      (delete-other-windows))))

(global-set-key (kbd "M-F") 'toggle-maximize-buffer)    

当我现在使用 最大化窗格时M-F,它运行良好,但是当我取消最大化它(再次使用M-F)时,我收到错误:

Wrong type argument: integer-or-marker-p, nil

我不知道为什么会这样。这个新版本有什么实质性的变化吗?

4

1 回答 1

1

我不知道可能发生了什么变化。但是,您不应该使用寄存器进行编程。以下代码改为使用变量并且没有错误:

(defun toggle-maximize-buffer () "Maximize buffer"
  (interactive)
  (if (= 1 (length (window-list)))
    (set-window-configuration my-saved-window-configuration)
    (progn
      (setq my-saved-window-configuration (current-window-configuration))
      (delete-other-windows))))
于 2013-04-25T23:06:55.740 回答