%-constucts ¶用作模式行构造的字符串可以使用特定的 %-constructs 来替换各类数据。
下面列出已定义的所有 %-constructs 及其含义。
除 ‘%%’ 以外的任意构造中,你都可以在 ‘%’ 后添加一个十进制整数 以指定最小字段宽度。如果实际内容宽度不足,会填充至该宽度。 纯数字型构造(‘c’、‘i’、‘I’、‘l’)会在左侧补空格, 其他类型则在右侧补空格。
%b当前缓冲区名称,通过 buffer-name 函数获取。
See Buffer Names。
%c光标所在列号,从窗口左边缘起以 0 开始计数。
%C光标所在列号,从窗口左边缘起以 1 开始计数。
%e当 Emacs 的 Lisp 对象内存即将耗尽时显示简短提示,否则为空。
%f访问的文件名,通过 buffer-file-name 函数获取。
See Buffer File Name。
%F所选框架的标题(仅在窗口系统下)或名称。 See Basic Parameters。
%i当前缓冲区可访问部分的大小,基本等价于 (- (point-max) (point-min))。
%I与 ‘%i’ 类似,但大小以更易读的方式显示,使用 ‘k’ 表示 10^3、 ‘M’ 表示 10^6、‘G’ 表示 10^9 等缩写形式。
%l光标所在行号,在缓冲区可访问范围内计数。
%M变量 global-mode-string 的值(默认是 mode-line-misc-info 的一部分)。
%n当启用收缩显示时显示 ‘Narrow’,否则为空(参见 Narrowing 中的 narrow-to-region)。
%o窗口在缓冲区(可见部分)中的 滚动进度(travel),即窗口顶部以上文本大小 占窗口外全部文本的百分比,或显示 ‘Top’、‘Bottom’、‘All’。
%p窗口 顶部 以上的缓冲区文本百分比,或 ‘Top’、‘Bottom’、‘All’。 注意默认模式行构造会将其截断为三个字符。
%P窗口 底部 以上的缓冲区文本百分比(包含窗口可见文本及顶部以上文本), 若缓冲区顶部在屏幕可见则附加 ‘Top’;或显示 ‘Bottom’、‘All’。
%q窗口 顶部 以上与 底部 以上的文本百分比,以 ‘-’ 分隔, 或显示 ‘All’。
%s当前缓冲区所属子进程的状态,通过 process-status 获取。
See Process Information。
%z键盘、终端及缓冲区编码系统的助记符。
%Z与 ‘%z’ 类似,但额外包含行尾格式信息。
%&缓冲区已修改时显示 ‘*’,否则显示 ‘-’。
%*缓冲区为只读时显示 ‘%’(参见 buffer-read-only);
缓冲区已修改时显示 ‘*’(参见 buffer-modified-p);
其余情况显示 ‘-’。See Buffer Modification。
%+缓冲区已修改时显示 ‘*’(参见 buffer-modified-p);
缓冲区为只读时显示 ‘%’(参见 buffer-read-only);
其余情况显示 ‘-’。仅在已修改的只读缓冲区下与 ‘%*’ 不同。
See Buffer Modification。
%@若缓冲区的 default-directory(see 文件名展开相关函数)位于远程主机,
显示 ‘@’,否则显示 ‘-’。
%[递归编辑层级深度指示(不计入小缓冲区层级):每级编辑显示一个 ‘[’。 See 递归编辑。
%]每个递归编辑层级显示一个 ‘]’(不计入小缓冲区层级)。
%-足够填满模式行剩余空间的短横线。
%%字符 ‘%’ 本身—用于在允许 % 构造的字符串中插入字面量 ‘%’。
%-Constructs ¶以下构造不再建议使用。
%m已废弃;请改用变量 mode-name。%m 构造存在缺陷,
当 mode-name 的值为非字符串类型的模式行构造时(例如 emacs-lisp-mode),
会生成空字符串。