如何打开临时缓冲区

fal*_*lse 15 emacs

很长一段时间我都做过:C-x b然后是一些"独特"的名字xbxb.所以我使用 switch-to-buffer不存在的缓冲区.你可以想象C-x C-b出我的是什么:很多这样的名字.xbxb,xbxbxxx....经过一段时间(一周左右)后真的很烦人,因为我发现我已经使用了所有好名字.

是否有更规范的方式来打开新的缓冲区?如果我想再运行一次shell,我会说C-u M-x shell.沿着这条线的东西是理想的.

R. *_*lon 12

您可以使用make-temp-name随机后缀生成文件或缓冲区的名称.以此为基础,您可以编写如下内容:

(defun generate-buffer ()
  (interactive)
  (switch-to-buffer (make-temp-name "scratch")))
Run Code Online (Sandbox Code Playgroud)

其中"scratch"可以替换为您想要的任何前缀.


eve*_*_jr 7

这样做:

(defun new-scratch ()
  "open up a guaranteed new scratch buffer"
  (interactive)
  (switch-to-buffer (loop for num from 0
                          for name = (format "blah-%03i" num)
                          while (get-buffer name)
                          finally return name)))
Run Code Online (Sandbox Code Playgroud)