실수로 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
존재하지 않는 경우이를 작성 하여 buffer로 전환 합니다. 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
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 파일에서 lisp로 설정해야하고 my-empty-buffer를 다음과 같은 바로 가기에 바인딩해야합니다 C-n
.
인체 공학적 의례