切换最大化时Emacs 24.3错误

时间:2013-04-25 22:24:10

标签: emacs

我的.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

我不知道为什么会这样。这个新版本有什么重大变化吗?

1 个答案:

答案 0 :(得分: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))))