请问如何获取一个 frame 的 identifier?

我想为每个 frame 创建一个自己的 buffer,并且想让该 buffer 的名字能与 frame 对应起来,因此想取得一个 frame 的标识符。

我试了下面的方法,可行,但是感觉有些 hacky,不知道是否有更正规的方法?

hacky 方法: 使用 (format "%s" (selected-frame)) 可以拿到一个字符串 #<frame *scratch* 0x7fa911093c30>,通过 split-string 拿到最后的指针地址作为该 frame 的唯一标识符。

window-id 可以吗? 例如:

(let* ((id (frame-parameter nil 'window-id))
       (buf-name (format " *Buffer for frame %s*" id)))
  (get-buffer-create buf-name))
1 个赞

试了一下,是可以的,会拿到从 1 开始的数字 ID,谢谢!