Nếu tôi vô tình đóng bộ đệm đầu trong Emacs, làm cách nào để tạo bộ đệm đầu mới?
Nếu tôi vô tình đóng bộ đệm đầu trong Emacs, làm cách nào để tạo bộ đệm đầu mới?
Câu trả lời:
Chỉ cần tạo lại bộ đệm bằng cách chuyển sang nó : C-x b *scratch* RET
. Kể từ Emacs 21.2, nếu bạn tạo một bộ đệm được gọi *scratch*
, nó sẽ tự động được đặt ở chế độ Tương tác Lisp .
*scratch*
và sau đó quay lại với nó, nó sẽ tự động được đặt thành chế độ tương tác không thể thiếu.
.emacs
).
Có thể tốt hơn là *scratch*
tự động tạo lại bộ đệm bất cứ khi nào nó bị xóa và tránh phải nhập lại tên của nó.
(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)
Các ràng buộc mặc định của GNU Emacs:
C-xb*scratch*
hoặc, dài dòng hơn
switch-to-buffer
*scratch*
Bộ *scratch*
đệm là bộ đệm được chọn khi khởi động và có chế độ tương tác Lisp . Lưu ý: chế độ cho *scratch*
bộ đệm được điều khiển bởi biến initial-major-mode
.
Nói chung, bạn có thể tạo nhiều bộ đệm "cào" như bạn muốn và đặt tên cho chúng theo cách bạn chọn.
C-x bNAME
chuyển sang bộ đệm NAME
, tạo nó nếu nó không tồn tại. Một bộ đệm mới không được liên kết với một tệp trên đĩa cho đến khi bạn sử dụng C-xC-w(hoặc M-xwrite-file
) để chọn một tệp mà nó sẽ được lưu.
M-xtext-mode
thay đổi chế độ chính của bộ đệm hiện tại thành chế độ Văn bản.
Để tìm tất cả các chế độ có sẵn (nghĩa là không yêu cầu bất kỳ gói mới nào), bạn có thể nhận danh sách bằng cách nhập:
apropos-command
-mode$
Tôi thích sử dụng bộ đệm đầu cho các công cụ vứt đi. Tuy nhiên, chỉ có một phần là hạn chế, do đó tôi có scratch
một lệnh tương tác để mở bộ đệm đầu mới (cho dù có bao nhiêu tồn tại):
(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
được thông qua từ: http://everything2.com/index.pl?node_id=1038451
M-x recover-session
không khôi phục được chúng. Có ai sửa đổi điều này để sử dụng một cái gì đó như thế make-temp-file
nào?
Tôi có thể đề nghị tạo một bộ đệm trống không? Điều thú vị là, bạn tạo bộ đệm trước và bạn lưu nó sau, nếu bạn thực sự muốn.
(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)))
Bạn sẽ phải đặt chế độ chính ban đầu thành lisp trong tệp init của mình và bạn nên liên kết bộ đệm trống của tôi với một phím tắt như thế nào C-n
.
Phép lịch sự của ergoemacs