29.17.2 侧边窗口选项与函数

下列选项可对侧边窗口的排布进行额外控制。

User Option: window-sides-vertical

若为非 nil,框架左侧与右侧的侧边窗口将占满整个框架高度。否则,框架顶部与底部的侧边窗口将占满整个框架宽度。

User Option: window-sides-slots

该选项指定框架每一侧最多可容纳的侧边窗口数量。取值为一个四元素列表,依次表示每个框架左侧、顶部、右侧、底部的侧边窗口位置序号数量。 若某一元素为数字,表示对应侧边最多显示该数量的窗口。若为 nil,表示该侧边的位置序号数量无上限。

若任一指定值为 0,则对应侧边无法创建窗口。此时 display-buffer-in-side-window 不会报错,而是返回 nil。若某一值仅禁止创建额外侧边窗口,则会复用该侧最合适的窗口,并可能相应修改其 window-slot 参数。

User Option: window-sides-reversed

该选项指定顶部/底部侧边窗口是否按反向顺序排列。 若为 nil,框架顶部和底部的侧边窗口始终按位置序号递增从左到右排列。 若为 t,则排列顺序反转,按位置序号递增从右到左排列。

若为 bidi,则仅当本框架主窗口区域内最近选中的窗口所显示缓冲区的 bidi-paragraph-direction(see 双向显示)为 right-to-left 时,才反转排列顺序。 由于该窗口有时难以精确定位,系统会使用启发式规则避免在切换其他窗口时意外改变排列顺序。

框架左侧与右侧侧边窗口的布局不受此变量影响。

当框架包含侧边窗口时,下列函数返回该框架的主窗口。

Function: window-main-window &optional frame

该函数返回指定 frame 的主窗口。可选参数 frame 必须为活动框架,默认为当前选中框架。

frame 无侧边窗口,则返回该框架的根窗口。 否则,返回一个内部非侧边窗口(框架上所有其他非侧边窗口均为其子窗口),或返回框架上唯一的活动非侧边窗口。 注意,框架的主窗口无法通过 delete-window 删除。

下列命令可方便地切换指定框架上所有侧边窗口的显示与隐藏。

Command: window-toggle-side-windows &optional frame

该命令切换指定 frame 上侧边窗口的显示状态。可选参数 frame 必须为活动框架,默认为当前选中框架。

frame 至少有一个侧边窗口,此命令会将框架根窗口的状态保存到该框架的 window-state 参数中,然后删除所有侧边窗口。

frame 无侧边窗口但存在 window-state 参数,此命令会使用该参数的值恢复侧边窗口,而保持主窗口不变。

若框架既无边窗也无保存的状态,则会抛出错误。