Tự động lưu bộ đệm không truy cập tệp


7

Tôi thường làm một cái gì đó như:

Cx b foobarbaz RET

để có một bộ đệm mới để ghi chú, v.v. Tôi rất thích các emacs chỉ chụp nhanh và đổ tất cả các bộ đệm đang mở vào đĩa. Có rất nhiều tài liệu hiện có để cải thiện chức năng tự động lưu và sao lưu nhưng tất cả chúng đều liên quan đến bộ đệm hiện đang truy cập một tệp.

Tôi muốn emacs định kỳ chụp nhanh / lưu TẤT CẢ bộ đệm vào đĩa. Điều này chắc chắn sẽ khiến một số bộ đệm 'đầu ra' noisey được ghi vào đĩa, nhưng ai quan tâm? Dung lượng đĩa rẻ.

Có bất cứ điều gì được xây dựng để làm điều này? Ngay bây giờ nếu máy tính của tôi (hoặc emacs) gặp sự cố, tôi thường bị mất rất nhiều ghi chú mà tôi đã thực hiện trong nhiều bộ đệm khác nhau.


save-some-bufferscó một tùy chọn cho các bộ đệm không truy cập tệp - có lẽ bạn có thể kết hôn với bộ hẹn giờ và chức năng tùy chỉnh, save-some-bufferschấp nhận làm đối số - xem chuỗi doc. Có lẽ đã có một cái gì đó thực hiện điều này - ví dụ: Google, "save-some-buffers" auto savev.v .; và, xem chức năng auto-save-modetrong simple.elmột số ý tưởng. Hồi ức của tôi là tự động lưu bộ đệm được tăng cường có thể đã làm một cái gì đó như thế này: github.com/kentaro/auto-save-buffers-enhified/blob/master/iêu
luật

Bạn đang dùng hệ điều hành nào và phiên bản emacs của bạn là gì? Tôi đang sử dụng RHEL 5.10 và emacs 25 (phiên bản dev từ git) và tôi không nhớ các emacs bị rơi một lần, có lẽ kể từ 24.4 ..
Kaushal Modi

1
Để ghi chú nhanh mà tự động lưu, tôi sẽ đề xuất deftgói.
Kaushal Modi

Sẽ kiểm tra khéo léo - trông tuyệt vời.
Chris Clark

Câu trả lời:


6

Điều này không trả lời câu hỏi của bạn như được đặt ra, vì vậy hãy bỏ qua hoặc downvote.

  1. Tôi nghi ngờ rằng bạn thực sự muốn Emacs lưu tất cả các bộ đệm vào đĩa, bao gồm tất cả các bộ đệm nội bộ, thông thường vô hình. Tại sao bạn sẽ muốn điều đó?

  2. Nó không phải là về không gian đĩa. Đó là về tiếng ồn. Bạn có thực sự muốn đào nội dung ra khỏi một thư mục nơi các tệp quan trọng của bạn có thể được trộn lẫn với những thứ đó không? Hay bạn muốn câu cá cho ngọc trai thỉnh thoảng trong một thư mục tạm thời (mục đích của nó là để giảm tiếng ồn)?

  3. Các bộ đệm có tên như *...*(không bắt đầu bằng char không gian) thường chỉ xuất ra (ví dụ *info*:) hoặc cho tương tác tạm thời (ví dụ *scratch*). Đối với những bộ đệm như vậy, đề nghị của tôi sẽ là để lại mọi thứ như hiện tại. Bạn luôn có thể lưu bất kỳ bộ đệm như vậy theo yêu cầu, sử dụng C-x C-w, nếu bạn thực sự cần.

  4. Điều khiến tôi nghi ngờ là trường hợp sử dụng thực sự của bạn: " bộ đệm để ghi chú, v.v. ". Câu trả lời ở đây là sử dụng C-x C-fthay vì C-x b. IOW, vâng, ghé thăm chúng như bộ đệm tập tin. Nếu bạn không bao giờ lưu bộ đệm thì không có tệp nào được tạo - ngoại trừ tệp tự động lưu , đây có thể là thứ bạn muốn và cần.

    Khi bạn truy cập bộ đệm dưới dạng bộ đệm tệp, bạn sẽ tự động kiểm soát chế độ chính nào được sử dụng theo mặc định (sử dụng auto-mode-alist). Điều này cũng quan trọng đối với việc ghi chú cũng như đối với mã lập trình.

    Cụ thể, tôi sẽ đề nghị rằng nếu bạn sử dụng *scratch*cho tương tác Lisp tạm thời, bạn có thể xem xét lại. Nhiều người dùng (bao gồm cả tôi) đã thấy rằng nó giúp sử dụng thay thế C-x C-f foo.el(hoặc bất kỳ *.eltên tệp nào khác ). Một lý do là bạn nhận được các tệp tự động miễn phí (và các tệp sao lưu, nếu bạn lưu bộ đệm). Một lý do khác là bạn có chế độ Emacs-Lisp thay vì chế độ tương tác Lisp. Lý do thứ ba là có, bạn có thể muốn lưu công việc "tạm thời" của mình. Và như bạn nói, dung lượng đĩa rất rẻ.

Điều gì về # 4 mâu thuẫn với những gì tôi đã nói trong # 1? Bạn không muốn trộn các tập tin nguệch ngoạc tạm thời với các tập tin quan trọng và bạn không muốn đưa viên ngọc thỉnh thoảng ra khỏi thư mục của các tập tin tạm thời. Câu trả lời ở đây là tùy thuộc vào bạn để sắp xếp mọi thứ sao cho hiệu ứng này được giảm thiểu. Làm việc với các tệp cào như vậy trong một thư mục cụ thể có thể giúp ích, như có thể sử dụng quy ước đặt tên (đặc biệt là tiền tố) giúp bạn phân biệt các tệp đó.

Một điều khác có thể giúp: Chỉ đạo . Bạn có thể sử dụng ~#đánh dấu các tập tin sao lưu và tự động xóa để xóa (sau đó xxóa chúng). Và nếu bạn sử dụng quy ước đặt tên cho các tệp có lẽ là tạm thời, thì bạn có thể sử dụng %hoặc tương tự để đánh dấu tất cả chúng để xóa. Bạn thậm chí có thể thực hiện một chức năng định kỳ để dọn sạch các tệp như vậy. Và bạn có thể dễ dàng đổi tên bất kỳ thứ gì bạn thực sự muốn giữ lâu hơn.

Vì vậy, lời khuyên của tôi là có lẽ nên xem xét lại cách bạn tương tác với các bộ đệm ghi chú tạm thời như vậy. Xem xét sử dụng bộ đệm tập tin, được tự động lưu. Tóm lại, sử dụng C-x C-f foobarbaz.txt RET( .elhoặc bất cứ điều gì) thay vì C-x b foobarbaz RET.


1
Tôi đoán bạn có nghĩa là "Tóm lại, sử dụng C-x C-f" thay vì "Tóm lại, sử dụng C-x b" trong đoạn cuối. (Tôi không thể đề xuất chỉnh sửa trực tiếp vì thay đổi này ít hơn 6 ký tự.)
YoungFrog 20/07/2015

1
Trong vài tuần qua, tôi đã cố gắng tập thói quen sử dụng Cx Cf và nó đã hoạt động khá tốt. Kết hợp với việc sử dụng dấu trang và Helm tốt hơn, tôi có thể truy cập vào thư mục ghi chú và tạo một tệp cào mới rất nhanh. Tôi đã có thói quen Cx b <gibberish> ban đầu thông qua mẹo số 5 hiệu quả của Yegge nhưng nếu có bất kỳ cơ hội nào của bộ đệm dính xung quanh, tôi nghĩ bạn có thói quen sử dụng một tệp thích hợp. Cảm ơn!
Chris Clark

1
Vui vì nó đã giúp.
vẽ
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.