我将我的Emacs默认新框架设置为
(setq default-frame-alist
'((top . 150) (left . 400)
(width . 120) (height . 50)))
有没有办法写一个函数来将每个新帧在顶部和左侧偏移5个单位,这样每个新帧都不会完美地叠加在一起?换句话说,我想级联所有新帧。
我的系统是带有Emacs 24.3.1的OS X
答案 0 :(得分:4)
我建议您修改default-frame-alist
中的before-make-frame-hook
:
(add-hook 'before-make-frame-hook 'cascade-default-frame-alist)
(defun cascade-default-frame-alist ()
(setq default-frame-alist
(mapcar (lambda (kv)
(if (memq (car kv) '(top left))
(cons (car kv) (+ 5 (cdr kv)))
kv))
default-frame-alist)))
如果您想就地修改default-frame-alist
,则需要create it with list
instead of quote
:
(setq default-frame-alist (list (cons 'top 150) (cons 'left 400)
(cons 'width 120) (cons 'height 50)))
(defun cascade-default-frame-alist ()
(dolist (kv default-frame-alist)
(when (memq (car kv) '(top left))
(setcdr kv (+ 5 (cdr kv))))))