Jika saya secara tidak sengaja menutup buffer awal di Emacs, bagaimana cara membuat buffer awal yang baru?
Jika saya secara tidak sengaja menutup buffer awal di Emacs, bagaimana cara membuat buffer awal yang baru?
Jawaban:
Hanya kembali membuat buffer dengan beralih ke itu: C-x b *scratch* RET
. Karena Emacs 21.2, jika Anda membuat buffer yang disebut *scratch*
, buffer otomatis dimasukkan ke dalam mode Interaksi Lisp .
*scratch*
dan kemudian kembali ke sana, itu diatur ke mode interaksi lisp secara otomatis.
.emacs
).
Lebih baik membuat kembali *scratch*
buffer secara otomatis setiap kali dihapus, dan menghindari mengetik ulang namanya.
(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)
Ikatan default GNU Emacs:
C-xb*scratch*
atau, lebih tepatnya
switch-to-buffer
*scratch*
The *scratch*
buffer buffer yang dipilih pada startup, dan memiliki besar modus Lisp Interaksi . Catatan: mode untuk *scratch*
buffer dikendalikan oleh variabel initial-major-mode
.
Secara umum Anda dapat membuat buffer "scratch" sebanyak yang Anda inginkan, dan beri nama sesuka Anda.
C-x bNAME
beralih ke buffer NAME
, membuatnya jika tidak ada. Buffer baru tidak dikaitkan dengan file pada disk hingga Anda menggunakan C-xC-w(atau M-xwrite-file
) untuk memilih file yang harus disimpan.
M-xtext-mode
mengubah mode utama buffer saat ini ke mode Teks.
Untuk menemukan semua mode yang tersedia (yaitu, tanpa memerlukan paket baru), Anda bisa mendapatkan daftar dengan mengetik:
apropos-command
-mode$
Saya suka menggunakan buffer awal untuk barang-barang yang dibuang. Memiliki satu saja agak membatasi, oleh karena itu saya punya scratch
sebagai perintah interaktif untuk membuka buffer awal baru (tidak peduli berapa banyak sudah ada):
(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
diadopsi dari: http://everything2.com/index.pl?node_id=1038451
M-x recover-session
tidak memulihkannya. Adakah yang memodifikasi ini untuk menggunakan sesuatu seperti make-temp-file
?
Bolehkah saya menyarankan untuk membuat buffer kosong? Yang menarik adalah, Anda membuat buffer terlebih dahulu, dan Anda menyimpannya setelahnya, jika Anda benar-benar menginginkannya.
(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)))
Anda harus mengatur mode-mayor-utama ke lisp di file init Anda dan Anda harus mengikat buffer my-empty ke shortcut seperti C-n
.
Atas perkenan ergoemacs