每个缓冲区都有一个唯一的名称,该名称是一个字符串。许多操作缓冲区的函数既接受缓冲区作为参数,也接受缓冲区名称作为参数。任何名为 buffer-or-name 的参数均属于此类,如果该参数既不是字符串也不是缓冲区,则会触发错误。任何名为 buffer 的参数必须是实际的缓冲区对象,而非名称。
临时且通常对用户无意义的缓冲区,其名称以空格开头,因此 list-buffers 和 buffer-menu 命令不会列出这些缓冲区(但如果此类缓冲区关联了文件,则 会被列出)。以空格开头的名称还会初始禁用撤销信息的记录;详见 撤销。
该函数以字符串形式返回 buffer 的名称。 如果未指定 buffer,则默认使用当前缓冲区。
如果 buffer-name 返回 nil,表示 buffer 已被删除。See 杀死缓冲区。
(buffer-name)
⇒ "buffers.texi"
(setq foo (get-buffer "temp"))
⇒ #<buffer temp>
(kill-buffer foo)
⇒ nil
(buffer-name foo)
⇒ nil
foo
⇒ #<killed buffer>
该函数将当前缓冲区重命名为 newname。如果 newname 不是字符串,则会触发错误。
通常情况下,如果 newname 已被使用,rename-buffer 会触发错误。但如果 unique 为非 nil 值,该函数会修改 newname,生成一个未被使用的名称。在交互式调用时,可以通过数字前缀参数将 unique 设为非 nil 值。
(命令 rename-uniquely 就是通过这种方式实现的。)
该函数返回缓冲区实际被赋予的名称。
该函数返回 buffer-or-name 指定的缓冲区。
如果 buffer-or-name 是字符串且不存在对应名称的缓冲区,则返回值为 nil。如果 buffer-or-name 是缓冲区,则按原样返回该缓冲区;这种用法实用性不高,因此该参数通常传入名称。例如:
(setq b (get-buffer "lewis"))
⇒ #<buffer lewis>
(get-buffer b)
⇒ #<buffer lewis>
(get-buffer "Frazzle-nots")
⇒ nil
另请参见 创建缓冲区 中的函数 get-buffer-create。
该函数返回一个可用于新缓冲区的唯一名称——但不会创建该缓冲区。它以 starting-name 为基础,通过在 ‘<…>’ 内追加数字的方式生成一个当前未被任何缓冲区使用的名称。数字从 2 开始递增,直到生成的名称不存在于现有缓冲区中。
如果可选的第二个参数 ignore 为非 nil 值,它应当是一个字符串(潜在的缓冲区名称)。这意味着即使该潜在名称已被现有缓冲区使用,也会将其视为可用名称。因此,若存在名为 ‘foo’、‘foo<2>’、‘foo<3>’ 和 ‘foo<4>’ 的缓冲区:
(generate-new-buffer-name "foo")
⇒ "foo<5>"
(generate-new-buffer-name "foo" "foo<3>")
⇒ "foo<3>"
(generate-new-buffer-name "foo" "foo<6>")
⇒ "foo<5>"
另请参见 创建缓冲区 中的相关函数 generate-new-buffer。
该函数返回 buffer 在被删除或最后一次重命名之前的名称。如果 buffer 为 nil 或被省略,则默认使用当前缓冲区。