创建 scratch buffer

magnar 的 emacs 配置里面

(defun create-scratch-buffer nil
  "create a new scratch buffer to work in. (could be *scratch* - *scratchX*)"
  (interactive)
  (let ((n 0)
        bufname)
    (while (progn
             (setq bufname (concat "*scratch"
                                   (if (= n 0) "" (int-to-string n))
                                   "*"))
             (setq n (1+ n))
             (get-buffer bufname)))
    (switch-to-buffer (get-buffer-create bufname))
    (emacs-lisp-mode)))

(global-set-key (kbd "C-c c b") 'create-scratch-buffer)

后来因为重启 scratch 文件经常丢了…

因此我配置了

(kill-buffer "*scratch*") (find-file "~/scratch")

(defun create-scratch-buffer nil
  "create a new scratch buffer to work in. (could be *scratch* - *scratchX*)"
  (interactive)
  (let ((n 0)
        bufname)
    (while (progn
             (setq bufname (concat "scratch"
                                   (if (= n 0) "" (int-to-string n))
                                   ""))
             (setq n (1+ n))
             (get-buffer bufname)))
    (switch-to-buffer (find-file (concat "~/" bufname)))
    (org-mode)))