Se ho accidentalmente chiuso il buffer di memoria virtuale in Emacs, come posso creare un nuovo buffer di memoria virtuale?
Se ho accidentalmente chiuso il buffer di memoria virtuale in Emacs, come posso creare un nuovo buffer di memoria virtuale?
Risposte:
Basta ricreare il buffer passando ad esso: C-x b *scratch* RET
. Da Emacs 21.2, se si crea un buffer chiamato *scratch*
, viene automaticamente messo in modalità Interazione Lisp .
*scratch*
e poi torno ad esso, è impostato automaticamente sulla modalità interazione lisp.
.emacs
).
Probabilmente è meglio ricreare *scratch*
automaticamente il buffer ogni volta che viene eliminato ed evitare di dover digitare nuovamente il suo nome.
(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)
Collegamenti predefiniti di GNU Emacs:
C-xb*scratch*
o, più verbalmente
switch-to-buffer
*scratch*
Il *scratch*
buffer è il buffer selezionato all'avvio e ha la modalità principale Interazione Lisp . Nota: la modalità per il *scratch*
buffer è controllata dalla variabile initial-major-mode
.
In generale puoi creare tutti i buffer "scratch" che vuoi e nominarli come preferisci.
C-x bNAME
passa al buffer NAME
, creandolo se non esiste. Un nuovo buffer non è associato a un file su disco fino a quando non si utilizza C-xC-w(o M-xwrite-file
) per scegliere un file in cui deve essere salvato.
M-xtext-mode
cambia la modalità principale del buffer corrente in modalità testo.
Per trovare tutte le modalità disponibili (ovvero senza richiedere nuovi pacchetti), puoi ottenere un elenco digitando:
apropos-command
-mode$
Mi piace usare i buffer di memoria virtuale per oggetti da buttare via. Avere solo uno è in qualche modo limitante, quindi ho scratch
come comando interattivo per aprire un nuovo buffer di memoria virtuale (indipendentemente da quanti ne esistano già):
(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
adottato da: http://everything2.com/index.pl?node_id=1038451
M-x recover-session
non li ripristino. Qualcuno ha modificato questo per usare qualcosa del genere make-temp-file
?
Posso suggerire di creare un buffer vuoto? La cosa interessante è che crei prima il buffer e poi lo salvi, se vuoi davvero.
(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)))
Dovrai impostare initial-major-mode su lisp nel tuo file init e dovresti associare my-empty-buffer a un collegamento come C-n
.
Per gentile concessione di ergoemacs