&optional BUFFER for other-buffer 功能不起作用?

&optional BUFFER for other-buffer function does not work?

当我需要切换到另一个缓冲区时,我有一个键绑定,它将创建一个名为 "*Buffer List*" 的缓冲区,我从中 select 新缓冲区。

我需要一个命令来在当前缓冲区和前一个缓冲区之间切换。除了我不想要 "*Buffer List*"。我查找了其他缓冲区的函数定义:

(other-buffer &optional BUFFER VISIBLE-OK FRAME)

Return most recently selected buffer other than BUFFER...

所以我尝试使用:

(other-buffer "*Buffer List*")

现在,如果我在新缓冲区中使用 C-x C-e 执行上面的代码,它将回显 "*Buffer List*",而不是我从中调用 "*Buffer List*" 的初始缓冲区。所以 &optional BUFFER 似乎不像我那样工作。谁能解释一下为什么?

BUFFER 必须是缓冲区对象。要使用缓冲区名称,您需要使用:

(other-buffer (get-buffer "*Buffer List*"))

请注意,当您 可以 使用缓冲区的名称作为参数时,文档倾向于将该参数命名为 BUFFER-OR-NAME (例如,请参阅 [=13= 的文档字符串] 本身),并在文本中明确说明事实。

如果您将 BUFFER 视为参数,它可能需要实际的缓冲区对象(如本例所示)。