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

时间:2016-01-10 15:57:15

标签: emacs elisp

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

我需要一个命令来切换当前缓冲区和前一个缓冲区。除了我不想要"*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似乎不像我这样做。任何人都可以解释原因吗?

1 个答案:

答案 0 :(得分:0)

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

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

请注意,当可以使用缓冲区的名称作为参数时,文档会将该参数命名为BUFFER-OR-NAME(例如,请参阅get-buffer本身的文档字符串),以及明确案文中的事实。

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