나는 매일 자바 스크립트 편집을 위해 emacs를 사용하고 버퍼 사이를 전환하기 위해 Cx LEFT와 Cx RIGHT를 사용하고 있으며 이것으로 괜찮습니다 (수정중인 파일의 경로를 알기가 어렵다고하더라도).
내 문제 :
-
내가 항상 시작
*scratch*
하고*Messages*
열었을 때,(kill-buffer "*scratch*")
내 .emacs 를 넣으면 문제가 해결 될 것이라고 생각 했지만 그렇지 않은 경우 제안 사항이 있습니까? -
파일을 열 때 항상 TAB 자동 완성을 수행하므로
*Messages*
완료 옵션이 포함 된 새 버퍼를 만들 때마다 이를 만들지 못하게하는 방법 또는 더 나은 방법으로 emacs가 파일을 죽이는 방법 내 선택 했어?
내가 상단에서 말한 것처럼 탐색하면서 “필요한 방식”이 아닌 무언가를하고 있다고 생각되면 의견을 말하십시오.
답변
내가 고칠 때까지 이것은 나를 미쳤다..
이제 흐름을 망칠 스크래치 , 메시지 또는 완료 버퍼가 없습니다 . 즐겨!
이것을 .emacs에 넣으십시오.
;; Makes *scratch* empty.
(setq initial-scratch-message "")
;; Removes *scratch* from buffer after the mode has been set.
(defun remove-scratch-buffer ()
(if (get-buffer "*scratch*")
(kill-buffer "*scratch*")))
(add-hook 'after-change-major-mode-hook 'remove-scratch-buffer)
;; Removes *messages* from the buffer.
(setq-default message-log-max nil)
(kill-buffer "*Messages*")
;; Removes *Completions* from buffer after you've opened a file.
(add-hook 'minibuffer-exit-hook
'(lambda ()
(let ((buffer "*Completions*"))
(and (get-buffer buffer)
(kill-buffer buffer)))))
;; Don't show *Buffer list* when opening multiple files at the same time.
(setq inhibit-startup-buffer-menu t)
;; Show only one active window when opening multiple files at the same time.
(add-hook 'window-setup-hook 'delete-other-windows)
보너스:
;; No more typing the whole yes or no. Just y or n will do.
(fset 'yes-or-no-p 'y-or-n-p)
답변
글쎄 … 그것은 부분적으로 Emacs가 작동하는 방식이지만 일반적으로 전환을 돕기 위해 할 수있는 일이 있습니다.
먼저, Emacs에는 하나 이상의 버퍼가 있어야합니다. 따라서 및를 제거 *scratch*
하고 싶더라도 *Messages*
원하지 않는 또 다른 버퍼가 남아 있습니다 (또는 Emacs kill-buffer
가 해당 버퍼를 다시 작성했기 때문에 마지막 요청을 무시한 지점을 얻습니다 ( b / c 하나의 버퍼가 필요합니다).
따라서 버퍼 전환이 더 의미있는 지점에 도달하는 가장 좋은 방법은 실제로 전환 하려는 버퍼를 보유 하는 것입니다.
이 작업을 마치면 버퍼를 전환하는 데 사용할 수있는 모든 옵션 / 패키지를 확인할 수 있습니다.이 중 대부분은 Emacs Wiki의 SwitchingBuffers 아래에 나열되어 있습니다 . ido
꽤 인기가 같습니다 icicles
및 anything
.
답변
누구든지 * scratch * 버퍼 만 제거 하고 * Messages * 버퍼를 남겨두고 싶은 경우이 코드는 저에게 효과적이었습니다.
(defun acg-initial-buffer-choice ()
(if (get-buffer "*scratch*")
(kill-buffer "*scratch*"))
(get-buffer "*Messages*"))
(setq initial-buffer-choice 'acg-initial-buffer-choice)
기억해야 할 한 가지는 언제든지 Emacs에 버퍼를 표시하지 않고 남겨두면 (예를 들어 모든 버퍼를 종료 한 경우) * scratch * 또는 * Messages * 버퍼를 생성하므로 작업 과정에서 모든 버퍼를 삭제하지 마십시오. 그렇지 않으면 * scratch *가 다시 활성화 될 수 있습니다.