Có thể tạo bộ đệm org-mode * scratch * không?


13

Khi làm việc trên một tài liệu trong emacs, tôi thường thấy mình mở một bộ đệm mới, làm một cái gì đó ở chế độ org, sao chép nội dung chế độ org và dán nó vào tài liệu của tôi. Tôi đã từng tạo một tài liệu chế độ org mới mỗi lần tôi cần để làm điều này. Bây giờ tôi có một tập tin ~/.scratch.orgnơi tôi giữ công việc này.

Có thể tạo một *org-scratch*bộ đệm hoạt động tương tự với *scratch*bộ đệm không?


3
Có điều gì bất tiện M-x org-modekhi làm trong *scratch*bộ đệm không?
xji

1
@XiangJi Thậm chí không nghĩ sẽ làm điều đó. Đó là một ý tưởng tuyệt vời.
Brian Fitzpatrick

Câu trả lời:


11

Chế độ chính ban đầu cho *Scratch*bộ đệm được điều khiển bởi biến initial-major-mode- giá trị cần phải là ký hiệu (theo thuật ngữ của giáo dân có nghĩa là đặt một trích dẫn trước tên chế độ chính): http: //www.gnu. org / software / emacs / thủ công / html_node / elisp / Auto-Major-Mode.html

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

EDIT : Dựa trên nhận xét của người đăng ban đầu, đây là một hàm mẫu để tạo bộ đệm không truy cập tệp theo thứ tự tuần tự với chế độ chính của 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))) ))))

Vì vậy, nó sẽ có thể có hai *Scratch*bộ đệm sau đó?
Brian Fitzpatrick

Tôi đã thêm một hàm mẫu tạo ra các bộ đệm không truy cập tệp mới theo thứ tự số và tôi đã bao gồm một org-modechỉ định. Tên có thể được thay đổi từ hello-worldbất kỳ thứ gì mà người dùng mong muốn được hệ điều hành nhận ra - ví dụ: Windows không giống như chiêm tinh.
luật

Rất tuyệt. Cảm ơn vì đã chú ý giùm thứ này!
Brian Fitzpatrick

Tôi rất vui vì đã có thể giúp đỡ. Tôi quyết định ném kết quả và hiển thị bộ đệm trong một cú trượt - chức năng là như nhau, nhưng chức năng này trông gọn hơn một chút theo cách này. :)
luật

11

Có một phần mở rộng được gọi scratch, cho phép tạo bộ đệm đầu cụ thể theo chế độ. Nó có sẵn từ MELPA, vì vậy bạn sẽ có thể cài đặt nó dễ dàng.

Với gói này được cài đặt, khi bạn ở trong org-modebộ đệm, bạn có thể chạy M-xscratchđể lấy bộ đệm đầu vào org-mode.

Nếu bạn đưa ra một đối số tiền tố, bạn có cơ hội chọn chế độ (thay vì chọn chế độ chính hiện đang hoạt động).


Tôi đã thử điều này nhưng tôi nghĩ bộ đệm đầu bị xóa sau khi bạn thoát emacs. Bộ đệm đầu không có, nó cũng tự động lưu. Điều này đúng hay tôi đã bỏ lỡ điều gì?
Vivi

1
Trừ khi bạn làm điều gì đó đặc biệt, *scratch*bộ đệm ban đầu không tồn tại qua các phiên, cũng không được lưu khi bạn thoát emacs. Hãy thử chạy emacs -qđể có được hành vi tiêu chuẩn, không được sửa đổi bởi tệp init của bạn.
François Févotte

Thật thú vị, tôi không biết điều đó. Tôi mới điều tra cái này và tôi phát hiện ra nó là một tính năng của Aquamacs. Tôi cũng phát hiện ra rằng Aquamacs đi kèm với Command-N gắn phím để tạo ra một vết xước mới trong một khung khác (cái này không tồn tại trong các phiên).
Vivi

2
Nhân tiện, có một gói trên MELPA được gọi là cào liên tục, yêu cầu tạo bộ đệm cào liên tục.
Vivi

5

Tôi nghĩ một cách đơn giản để đạt được nó chỉ đơn giản là chạy M-x org-modekhi bạn ở trong *snatch*bộ đệm, và do đó cho phép org-modetrực tiếp. Điều này có thể được áp dụng để cho phép bất kỳ chế độ chính.


Cách đơn giản nhất cho đến nay.
dùng2699

Điều này chắc chắn là hữu ích. Tôi thích có bộ đệm đầu dành riêng cho chế độ org vì tôi thường sử dụng bộ đệm đầu cho những thứ khác.
Brian Fitzpatrick

2

Thử đi:

  1. Cx b (nhập tên cho bộ đệm đầu mới của bạn, ví dụ: "asdf")
  2. Chế độ org của Mx (thay đổi chế độ chính của bộ đệm "asdf")

Khi đóng bộ đệm này, bạn sẽ không nhận được một truy vấn để lưu nội dung của nó. Tức là bạn có được một bộ đệm đầu thích hợp. Và *scratch*bộ đệm vẫn còn nguyên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.