Si accidentalmente cerré el buffer de scratch en Emacs, ¿cómo creo un nuevo buffer de scratch ?
Enlaces predeterminados de GNU Emacs:
C-xb
*scratch*
RET
o, más verbosamente
M-x
switch-to-buffer *scratch*
RET
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 "scratch" como desee y nombrarlos como quiera.
C-xb
NAME
RET
cambia a un 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-x write-file
RET) para elegir un archivo donde debe guardarse.
M-x
text-mode
RET
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:
M-x
apropos-command -mode$
RET
.emacs
define un modo scratch predeterminado diferente , este será el modo para el nuevo scratch , no el modo List Interaction.Agrego lo siguiente en mis .emacs:
Si yo no quiero ver cero búfer presiono Cx Ck, pero no la mata, lugar justo en el final de la lista de amortiguamiento, por lo que entonces lo necesito próxima vez no tengo para crear uno nuevo.
fuente
Hay muchos consejos en esta página de EmacsWiki .
Aquí está el primero:
fuente
Cx b
*scratch*
RET y RET con el modo iswitchb habilitado.Solo Cx b
*scratch*
RET de lo contrario.fuente
initial-major-mode
variable (lisp-interaction-mode por defecto).Encontré esto hace años cuando comencé a usar emacs; No tengo idea de dónde ahora, pero siempre ha tenido un hogar en mis archivos .el personales. Aparece en las búsquedas de Google.
fuente
Solía usar la solución de dwj, y estaba muy contento con eso, hasta el día en que me di cuenta de que falló cuando cambiaste el nombre del búfer de memoria virtual (por ejemplo, guardándolo).
Luego adopté esto, que me funciona bien:
fuente
Tengo
scratch
como comando interactivo para abrir un nuevo buffer de scratch (me gusta tener varios):adoptado de: http://everything2.com/index.pl?node_id=1038451
fuente
bufname
RET)?ido-mode
y generalmente tengo bastantes buffers abiertos. Crear un nuevo buffer usandoC-x b
sería realmente tedioso. Tendría que encontrar un nombre único que no coincida con ninguno de los buffers actuales.Esto no solo cambiará rápidamente al
*scratch*
búfer (ya que hago esto con frecuencia), sino que recreará un*scratch*
búfer y lo habilitarálisp-interaction-mode
automáticamente si lo mata accidentalmente. Cambia el enlace como quieras.fuente
Solo para tener en cuenta que el paquete emacs
unkillable-scratch
en MELPA hará esto. También hayscratch-persist
que guardará y restaurará automáticamente el búfer entre sesiones.fuente
Como dice la cadena de documentación, esta función:
Esto traerá un nuevo buffer de scratch que se parece al buffer de scratch inicial.
fuente
Esto es lo que uso: tengo esto vinculado a una combinación de teclas conveniente. Lo envía al
*scratch*
búfer, independientemente de si ya existe o no, y lo establece enlisp-interaction-mode
fuente
Prefiero que mi memoria virtual sea un archivo real que se guarda automáticamente, y volver a abrirlo es tan simple como abrir un archivo. En el inicio, elimino el valor predeterminado y encuentro el mío así.
Tengo una función personalizada kill-buffer que hace esencialmente lo mismo: reabrir mi archivo guardado scratch personal y elimina el scratch predeterminado si eliminé el último buffer visible.
Personalicé algunas de las
desktop.el
funciones para cargar después(kill-buffer "*scratch*")
y(find-file "/Users/HOME/Desktop/.scratch")
para que el archivo visible por última vez al salir de Emacs no quede oculto por el scratch predeterminado ni por mi scratch personalizado al iniciar Emacs.Disfruto usando
auto-save-buffers-enhanced
, que guarda automáticamente cualquier extensión de archivo que no esté específicamente excluidahttps://github.com/kentaro/auto-save-buffers-enhanced/blob/master/auto-save-buffers-enhanced.el
Utilizo una ligera variación de la función de @paprika cuando quiero crear un búfer de visitas sin archivos:
fuente
He combinado las soluciones publicadas hasta ahora en una función:
Para aplicar esta función en su .emacs use:
Esto hará que el búfer de memoria virtual sea indestructible en primer lugar y, si se guarda, se volverá a crear. Además, podemos usar una función de acceso directo
scratch
para abrir el búfer rápidamente:En el pasado, ha resultado útil conocer el directorio de inicio original desde el que se inició Emacs. Este es el valor
desktop-dirname
o ladefault-directory
variable local del scratch-buffer:Así --startup-directorio siempre devolverá el directorio base de su makefile, TODO-archivo, etc. En caso de que no hay escritorio ( --no-desktop de comandos-interruptor o sin desktop-file) la
--scratch-directory
variable de sostendrá directorio de Emacs fue una vez comenzó bajo.fuente
encuentre la respuesta en EmacsWiki: http://www.emacswiki.org/emacs/RecreateScratchBuffer
fuente
Para agregar a la respuesta aceptada, si tiene activado el modo OIT (y se completa automáticamente después C-x b, por lo que no le permite escribir
*scratch*
), intente:C-x b C-b *scratch* RET
fuente
para crear un nuevo búfer que también esté en modo de interacción lisp.
fuente