Si accidentalmente cerré el buffer de scratch en Emacs, ¿cómo creo un nuevo buffer de scratch?
Si accidentalmente cerré el buffer de scratch en Emacs, ¿cómo creo un nuevo buffer de scratch?
Respuestas:
Sólo volver a crear el buffer por el cambio a que: C-x b *scratch* RET
. Desde Emacs 21.2, si crea un búfer llamado *scratch*
, se pone automáticamente en modo de interacción Lisp .
*scratch*
y luego vuelvo a él, está configurado en modo de interacción lisp automáticamente.
.emacs
).
Podría decirse que es mejor volver a crear el *scratch*
búfer automáticamente cada vez que se elimine, y evitar tener que volver a escribir su nombre.
(defun prepare-scratch-for-kill ()
(save-excursion
(set-buffer (get-buffer-create "*scratch*"))
(add-hook 'kill-buffer-query-functions 'kill-scratch-buffer t)))
(defun kill-scratch-buffer ()
(let (kill-buffer-query-functions)
(kill-buffer (current-buffer)))
;; no way, *scratch* shall live
(prepare-scratch-for-kill)
;; Since we "killed" it, don't let caller try too
nil)
(prepare-scratch-for-kill)
Enlaces predeterminados de GNU Emacs:
C-xb*scratch*
o, más verbosamente
switch-to-buffer
*scratch*
El *scratch*
búfer es el búfer seleccionado al inicio y tiene el modo principal Interacción Lisp . Nota: el modo para el *scratch*
búfer está controlado por la variable initial-major-mode
.
En general, puede crear tantos buffers de "scratch" como desee, y nombrarlos como quiera.
C-x bNAME
cambia al búfer NAME
, creándolo si no existe. Un nuevo búfer no está asociado con un archivo en el disco hasta que use C-xC-w(o M-xwrite-file
) para elegir un archivo donde debe guardarse.
M-xtext-mode
cambia el modo principal del búfer actual al modo Texto.
Para encontrar todos los modos disponibles (es decir, sin requerir ningún paquete nuevo), puede obtener una lista escribiendo:
apropos-command
-mode$
Me gusta usar tampones de cero para cosas descartables. Sin embargo, tener solo uno es algo limitante, por lo tanto, tengo scratch
un comando interactivo para abrir un nuevo búfer de memoria virtual (no importa cuántos ya existan):
(defun scratch ()
"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))
(if (= n 1) initial-major-mode))) ; 1, because n was incremented
adoptado de: http://everything2.com/index.pl?node_id=1038451
M-x recover-session
no los recupero. ¿Alguien ha modificado esto para usar algo como make-temp-file
?
¿Puedo sugerir crear un búfer vacío? Lo interesante es que primero crea el búfer y lo guarda después, si realmente lo desea.
(defun my-empty-buffer ()
"Open a new empty buffer."
(interactive)
(let ((buf (generate-new-buffer "untitled")))
(switch-to-buffer buf)
(funcall (and initial-major-mode))
(setq buffer-offer-save t)))
Tendrá que configurar el modo inicial-principal para que celebre en su archivo init y debe vincular my-empty-buffer a un acceso directo como C-n
.
Cortesía de ergoemacs.