我的init.el文件中有以下内容
(if (display-graphic-p)
(progn
(setq initial-frame-alist
'((tool-bar-lines . 0)
(width . 106) ; chars
(height . 60) ; lines
(left . 50)
(top . 50)))
(setq default-frame-alist
'((tool-bar-lines . 0)
(width . 106)
(height . 60)
(left . 50)
(top . 50))))
(progn
(setq initial-frame-alist '((tool-bar-lines . 0)))
(setq default-frame-alist '((tool-bar-lines . 0)))))
我是emacs的新手,想知道如何使每个连续的新帧都打开(上一个帧为左+ 10)。
我希望每次使用C-x 5 2
打开新框架时都可以直观地看到所有框架。使用init.el
中的当前设置,新帧会与前一帧重叠。
答案 0 :(得分:1)
我认为这里的简单方法是直接创建框架emacs将在变量之后创建框架:
ELISP> initial-frame-alist
((fullscreen . maximized)
(left-fringe . 10)
(right-fringe . 0))
我在init.el上有这个
;; Default frame size
(add-to-list 'initial-frame-alist '(fullscreen . maximized))
我也使用边缘模式
;; Turn on the left fringe
(set-fringe-mode '(10 . 0)) ;; 10px left, 0px right
所以这是我对emacs的初始设置,然后当我需要一个新框架时,按C-x 5-2,对emacs放置位置没有任何问题。但是如果需要,可以创建它。我建议您尝试使用ielm(M-x ielm
)和框架:
首先创建框架制作框架的功能:
ELISP> (make-frame)
#<frame Emacs 0x1158fc150>
ELISP>
这将完全按照C-x 5-2创建和创建emacs框架
让我们移动此框架:
ELISP> (set-frame-position nil 50 50)
t
现在让我们研究一下make-frame函数(C-h f):
(框架和可选参数)
返回一个新创建的显示当前缓冲区的帧。可选的 参数PARAMETERS是新框架的框架参数列表。 参数的每个元素都应采用(NAME。VALUE)的形式, 例如:
(名称。STRING)框架应命名为STRING。
(width。NUMBER)框架的宽度应为NUMBER个字符。 (高度。NUMBER)框架的高度应为NUMBER个文本行。
(minibuffer。t)帧应该有一个minibuffer。 (minibuffer。 nil)帧应该没有小缓冲区。 (仅限minibuffer) 帧应仅包含一个小型缓冲区。 (minibuffer。窗口) 框架应使用WINDOW作为其迷你缓冲区窗口。
(window-system。nil)该帧应显示在终端上 设备。 (窗口系统。x)框架应显示为X 窗口。
(显示“ 0”)。框架应出现在显示:0上。
(terminal。TERMINAL)框架应使用终端对象 终端。
此外,“ default-frame-alist”中指定的任何参数,但不是 出现在“参数”中。
在创建框架之前(通过“ frame-creation-function”) 函数运行钩子“ before-make-frame-hook”。创建完之后 框架,它通过一个钩子运行“ after-make-frame-functions” 参数,新创建的框架。
如果提供了显示参数,而没有提供窗口系统,请猜测 显示屏上的窗口系统。
在图形显示中,此功能本身并不能使新功能 框住选定的框。但是,窗口系统可以选择 根据自己的规则创建新框架。
我们在这里无法找到真实的信息,而是在查看源文件的同时检查了该函数:我们发现框架具有以下参数:top',
left',width',
height',{{1} }用户位置”参数。
因此,我们可以在创建新框架时指定这4件事,现在我们正要只采取位置(这也取决于您的窗口管理器,像素以及放置方式)
user-size' and
您会得到的:
(让我们使用