org-mode * scratch * 버퍼를 만들 수 있습니까?


13

emacs에서 문서 작업을하는 동안 종종 새 버퍼를 열고, org-mode에서 무언가를하고, org-mode 컨텐츠를 복사하여 내 문서에 붙여 넣는 경우가 종종 있습니다. 이 작업을 수행 할 때마다 새 조직 모드 문서를 작성했습니다. 이제이 ~/.scratch.org작업을 유지 하는 파일 이 있습니다.

*org-scratch*버퍼와 유사하게 작동 하는 버퍼 를 만들 수 *scratch*있습니까?


3
버퍼 상태 일 M-x org-mode때 불편한 점이 *scratch*있습니까?
xji

1
@XiangJi 그렇게 생각조차하지 않았습니다. 그거 좋은 생각이야.
브라이언 피츠 패트릭

답변:


11

*Scratch*버퍼 의 초기 주 모드 는 변수에 의해 제어됩니다. initial-major-mode값은 기호 여야합니다 (평신도의 용어에서는 주 모드 이름 앞에 작은 따옴표를 씁니다 ) : http : //www.gnu. org / software / emacs / manual / html_node / elisp / Auto-Major-Mode.html

(setq initial-major-mode 'org-mode)

편집 : 원본 포스터의 주석을 기반으로 다음과 같은 주요 모드로 파일을 방문하지 않는 버퍼를 순차적으로 만드는 샘플 함수는 org-mode다음 과 같습니다.

(defun my-scratch-buffer ()
"Create a new scratch buffer -- \*hello-world\*"
(interactive)
  (let ((n 0)
        bufname buffer)
    (catch 'done
      (while t
        (setq bufname (concat "*hello-world"
          (if (= n 0) "" (int-to-string n))
            "*"))
        (setq n (1+ n))
        (when (not (get-buffer bufname))
          (setq buffer (get-buffer-create bufname))
          (with-current-buffer buffer
            (org-mode))
          ;; When called non-interactively, the `t` targets the other window (if it exists).
          (throw 'done (display-buffer buffer t))) ))))

그렇다면 두 개의 *Scratch*버퍼 를 가질 수 있습니까?
브라이언 피츠 패트릭

파일을 방문하지 않는 새로운 버퍼를 숫자 순으로 만드는 샘플 함수를 추가하고 org-mode지정을 포함 시켰습니다 . 이름은 hello-world운영 체제에서 인식하는 사용자가 원하는 것으로 변경할 수 있습니다 ( 예 : Windows는 별표를 좋아하지 않습니다).
lawlist

매우 시원합니다. 이것을 봐 주셔서 감사합니다!
브라이언 피츠 패트릭

기꺼이 도와 드리겠습니다. 나는 결과를 던져 버리고 한 번에 버퍼를 표시하기로 결정했습니다. 기능은 동일하지만 기능은이 방식으로 조금 더 컴팩트 해 보입니다. :)
lawlist

11

scratch모드 별 스크래치 버퍼를 만들 수있는 이라는 확장 이 있습니다. MELPA에서 구할 수 있으므로 쉽게 설치할 수 있습니다.

이 패키지를 설치하면 org-mode버퍼 에있을 때에 M-xscratch스크래치 버퍼를 얻을 수 있습니다 org-mode.

접두사 인수를 제공하면 현재 활성화 된 주 모드를 선택하는 대신 모드를 선택할 수 있습니다.


나는 이것을 시도했지만 emacs를 종료 한 후 스크래치 버퍼가 삭제된다고 생각합니다. 원래 스크래치 버퍼는 자동 저장되지 않습니다. 이것이 맞습니까? 아니면 뭔가 빠졌습니까?
Vivi

1
특별한 조치를 취하지 않으면 원래 *scratch*버퍼는 여러 세션에서 지속되지 않으며 emacs를 종료 할 때 저장되지 않습니다. emacs -qinit 파일에 의해 수정되지 않은 표준 동작을 얻으려면 실행 하십시오.
François Févotte

흥미 롭습니다. 방금 조사한 결과 Aquamacs의 기능이라는 것을 알았습니다. 또한 Aquamacs는 다른 프레임에서 새 스크래치를 생성하기 위해 Command-N 키 바인딩과 함께 제공된다는 것을 알았습니다.
Vivi

2
그런데 MELPA에는 영속 스크래치 버퍼를 생성한다고 주장하는 영속 스크래치라는 패키지가 있습니다.
Vivi

5

나는 그것을 달성하는 간단한 방법 중 하나 M-x org-mode*snatch*버퍼에 있을 때 단순히 실행 하여 org-mode직접 활성화하는 것이라고 생각 합니다. 이것은 모든 주요 모드를 활성화하는 데 적용 할 수 있습니다.


가장 간단한 방법입니다.
user2699

이것은 확실히 유용합니다. 스크래치 버퍼를 다른 용도로 자주 사용하기 때문에 독점적으로 org-mode 전용 스크래치 버퍼를 사용하는 것이 좋습니다.
브라이언 피츠 패트릭

2

이 시도:

  1. Cx b (새 스크래치 버퍼의 이름을 입력하십시오 (예 : "asdf")
  2. MX org-mode ( "asdf"버퍼의 주 모드 변경)

이 버퍼를 닫으면 내용을 저장하기위한 쿼리가 표시되지 않습니다. 즉, 적절한 스크래치 버퍼가 있습니다. 그리고 *scratch*버퍼는 그대로 남아 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.