在Emacs中重新打开*scratch*缓冲区?

For*_*imo 168 emacs

如果我不小心关闭了Emacs中的暂存缓冲区,我该如何创建一个新的暂存缓冲区?

Tre*_*son 198

GNU Emacs默认绑定:

C-xb *scratch* RET

或者,更详细

M-x switch-to-buffer *scratch* RET

*scratch*缓冲器是在启动时选择的缓冲液中,并具有主要模式Lisp的相互作用.注意:*scratch*缓冲区的模式由变量控制initial-major-mode.

通常,您可以根据需要创建任意数量的"临时"缓冲区,并根据您的选择命名它们.

C-xb NAME RET

切换到缓冲区NAME,如果它不存在则创建它.在您使用C-xC-w(或M-x write-file RET)选择应保存文件的文件之前,新缓冲区与磁盘上的文件无关.

M-x text-mode RET

将当前缓冲区的主要模式更改为文本模式.要查找所有可用模式(即不需要任何新包),可以通过键入以下内容获取列表:

M-x apropos-command -mode$ RET

  • 请注意,*scratch*有一些特别之处,至少在GNU Emacs 21及更高版本中:切换到新的*scratch*缓冲区会将其重新置于Lisp Interaction模式. (8认同)

小智 23

我在.emacs中添加以下内容:

;; bury *scratch* buffer instead of kill it
(defadvice kill-buffer (around kill-buffer-around-advice activate)
  (let ((buffer-to-kill (ad-get-arg 0)))
    (if (equal buffer-to-kill "*scratch*")
        (bury-buffer)
      ad-do-it)))
Run Code Online (Sandbox Code Playgroud)

如果我不想看临时缓冲区我按Cx Ck,但它不会杀死它,只是放在缓冲区列表的末尾,所以接下来我不需要创建新的那个就需要它.


idb*_*rii 15

这个EmacsWiki页面上有很多提示.

这是第一个:

一个非常简单的函数来重新创建临时缓冲区:

(defun create-scratch-buffer nil
   "create a scratch buffer"
   (interactive)
   (switch-to-buffer (get-buffer-create "*scratch*"))
   (lisp-interaction-mode))             
Run Code Online (Sandbox Code Playgroud)


Ste*_*wig 8

Cx b *scratch*RET y RET,启用iswitchb模式.

只是Cx b *scratch*RET否则.