0blayout只能“记忆”一个窗口切分吗?


#1

按理说:0blayout,切分多个窗口时可以0blout-new保存当前窗口布局,并且给起个别名,方便布局切换。

配置如下: (add-to-list 'load-path (expand-file-name “lisp” user-emacs-directory))

(require '0blayout)

(0blayout-mode 1) ; Activate 0blayout-mode

1.为什么我new的时候新起的别名总是成为default! 2.无论new多少个,总是只有最后一个次的布局(而且还是default别名),和scratch。


#2
  1. 版本是哪一个?

2.变量 0blayout-alist 的值是多少(C-h v 0blayout-alist)

他的核心是 window-configuration

3…建几个窗口,其中一个是*scratch* 在*scratch* 中输入以下代码并按 C-xC-e
(setq zz (current-window-configuration ) C-xC-e

4…只留下*scratch* 在*scratch* 中输入以下代码并按 C-xC-e
(set-window-configuration zz) C-xC-e

5…复制下面的代码到 *scratch* 在最后的 “)”后 按 C-xC-e ,如果得到zxcvbn 那就是你操作的问题了\

(progn
(set-frame-parameter nil '0blayout-current “zxcvbn”)
(print (frame-parameter nil '0blayout-current))
) C-xC-e


#3

image

0blayout-alist默认是nil ,创建一个布局后值变为window-configuration

也能保存多个布局,必须先回到只有一个窗口的scratch下切分好布局后,然后C-c C-l C-c创建新布局。

问题1: 当提一次创建的时候,我想给他起一个别名,但是却默认为default,而scratch却是我起别名的窗口。

问题2: C-c C-l C-c 后第一次执行C-c C-l C-b不会显示刚刚创建的别名,第二次才出现。

问题3: 每次新起的别名都会给scratch 新布局的别名值是scratch之前的别名值。就像 新别名值 <-----> scratch 互换一样。


#4
(defun 0blayout-push (layout-name)
  "0blayout saving function.
Argument LAYOUT-NAME Name of the layout."
  (interactive "sEnter name of current layout: ")
  (set-frame-parameter nil '0blayout-current layout-name)
  (0blayout-save)
  (message "Saved layout: '%s'" (0blayout-get-current-name))
)

(defun 0blayout-pop (layout-name)
  "0blayout pop function.
Argument LAYOUT-NAME Name of the layout."
  (interactive
   (list
    (completing-read "Layout to pop up: " 0blayout-alist)))

  (let ((layout (assoc (intern layout-name) 0blayout-alist)))
    (if (eq layout nil)
        (message "No layout with name: '%s' is defined" layout-name)
      (progn
        (set-window-configuration (cdr layout))
        (0blayout-set-current-name layout-name)
        (message "Pop up to layout: '%s'" layout-name)))))

(define-key global-map "\M-l" '0blayout-push)
(define-key global-map "\M-k" '0blayout-pop)

将以上代码复制到 *scratch* 然后 M-x eval-buffer (也可以是.emac 或是 0blayout.el)

再然后 M-l 保存当前的布局 M-k切换到以前保存的布局


#5

恩,这俩函数非常好。

正好符合:命名,布局切换的想法!


#6

0blayout.el 注释掉前缀快捷键