42.3 截断显示

当文本行超出窗口右边界时,Emacs 可以 延续(continue) 该行(将其换行到下一个屏幕行),或 截断(truncate) 该行(限制为单个屏幕行)。用于显示长文本行的额外屏幕行称为 延续行(continuation)。延续与填充不同;延续仅发生在屏幕显示层面,不会修改缓冲区内容,且会精确在右边界处换行,而非单词边界。See 段落重排

在图形化显示中,窗口边栏的微小箭头图标会标识截断行和延续行(see 侧边栏)。在文本终端中,以及关闭 fringe-mode 的图形化显示中,窗口最右列的 ‘$’ 表示截断;最右列的 ‘\’ 表示换行。(显示表可指定替代字符;see 显示表)。

由于文本换行和截断相互排斥,Emacs 在请求换行时会关闭行截断,反之亦然。

User Option: truncate-lines

如果这个缓冲区局部变量为非 nil,超出窗口右边界的行会被截断;否则会被延续。作为特殊例外,变量 truncate-partial-width-windows部分宽度(partial-width) 窗口(即未占据整个框架宽度的窗口)中优先级更高。

User Option: truncate-partial-width-windows

该变量控制 部分宽度(partial-width) 窗口中的行截断。部分宽度窗口指未占据整个框架宽度的窗口(see 拆分窗口)。若值为 nil,行截断由变量 truncate-lines 决定(见上文)。若值为整数 n,当部分宽度窗口列数小于 n 时截断行,无视 truncate-lines 的值;当列数大于等于 n 时,行截断由 truncate-lines 决定。若为其他非 nil 值,所有部分宽度窗口均截断行,无视 truncate-lines 的值。

当窗口启用水平滚动(see 水平滚动)时,会强制启用截断。

Variable: wrap-prefix

如果这个缓冲区局部变量为非 nil,它定义一个 换行前缀(wrap prefix),Emacs 会在每个延续行的开头显示。(如果行被截断,则不会使用 wrap-prefix)。其值可以是字符串或图片(see 其他显示规范),或由 :width:align-to 显示属性指定的空白区域(see 指定空格)。该值的解析方式与 display 文本属性相同,一个重要区别是::align-to 指定的水平位置从屏幕行的视觉起始位置计算。See display 属性

也可以通过 wrap-prefix 文本或覆盖层属性为文本区域指定换行前缀。该优先级高于 wrap-prefix 变量。See 具有特殊含义的文本属性

Variable: line-prefix

如果这个缓冲区局部变量为非 nil,它定义一个 行前缀(line prefix),Emacs 会在每个非延续行的开头显示。其值可以是字符串或图片(see 其他显示规范),或由 :width:align-to 显示属性指定的空白区域(see 指定空格)。该值的解析方式与 display 文本属性相同。See display 属性

也可以通过 line-prefix 文本或覆盖层属性为文本区域指定行前缀。该优先级高于 line-prefix 变量。See 具有特殊含义的文本属性