Якщо я випадково закрив буфер подряпин у Emacs, як створити новий буфер нуля?
Якщо я випадково закрив буфер подряпин у Emacs, як створити новий буфер нуля?
Відповіді:
Просто заново створити буфер, перемикаючись на нього: C-x b *scratch* RET
. Оскільки Emacs 21.2, якщо ви створюєте буфер, який називається *scratch*
, він автоматично переводиться в режим Lisp Interaction .
*scratch*
а потім повертаюсь до нього, він встановлюється автоматично в режимі взаємодії lisp.
.emacs
).
Можливо, краще повторно створити *scratch*
буфер автоматично, коли він видаляється, і уникати повторного введення його імені.
(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)
Прив’язки GNU Emacs за замовчуванням:
C-xb*scratch*
або, більш багатослівно
switch-to-buffer
*scratch*
*scratch*
Буфер представляє собою буфер , обраний під час запуску, і має основний режим лісповскіе взаємодії . Примітка: Режим для *scratch*
буфера управляється змінною initial-major-mode
.
Загалом ви можете створити стільки буферів "подряпин", скільки захочете, і назвати їх, як тільки захочете.
C-x bNAME
перемикається на буфер NAME
, створюючи його, якщо його не існує. Новий буфер не асоціюється з файлом на диску, поки ви не скористаєтесь C-xC-w(або M-xwrite-file
) для вибору файлу, куди його слід зберегти.
M-xtext-mode
змінює основний режим поточного буфера на текстовий режим.
Щоб знайти всі доступні режими (тобто, не вимагаючи нових пакетів), ви можете отримати список, ввівши:
apropos-command
-mode$
Мені подобається використовувати буфер для подряпин для викидання речей. Маючи лише один, дещо обмежує, тому я маю scratch
як інтерактивну команду для відкриття нового буфера нуля (незалежно від того, скільки їх уже існує):
(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
прийнято з: http://everything2.com/index.pl?node_id=1038451
M-x recover-session
що їх не відновив. Хтось змінив це, щоб використовувати щось подібне make-temp-file
?
Чи можу я запропонувати створити порожній буфер? Цікавим є те, що ви спочатку створюєте буфер і зберігаєте його після, якщо цього дійсно хочете.
(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)))
Вам доведеться встановити режим початкового-основного режиму, щоб вискакувати ваш файл init, і вам слід прив’язати буфер my-empty до ярлика C-n
.
Надано ергоемаками