Bạn có thể viết một hàm thu hẹp bộ đệm của bạn vào tất cả mọi thứ trừ 15 dòng đầu tiên.
(defun hide-copyright-note()
"Narrows the current buffer so that the first 15 lines are
hidden."
(interactive)
(save-excursion
(goto-char (point-min))
(forward-line 15)
(narrow-to-region (point) (point-max))))
Sau đó, tất cả những gì bạn cần làm là đảm bảo rằng chức năng này được gọi cho mọi tệp có chứa ghi chú bản quyền. Điều này có thể được thực hiện bằng cách thêm một móc, tốt nhất là chế độ chính của tệp của bạn. Ví dụ: bạn có thể thêm định nghĩa hàm ở trên và dòng sau vào tệp .emacs của bạn:
(add-hook 'c-mode-hook 'hide-copyright-note)
Điều này sẽ gọi chức năng 'ẩn-bản quyền-ghi chú bất cứ khi nào bạn mở tệp C. Trong thực tế, bạn có thể muốn làm cho hook-function của bạn thông minh hơn, hoặc bằng cách kiểm tra nếu một lưu ý bản quyền ẩn thực sự tồn tại hoặc bằng cách chạy ẩn-bản quyền-lưu ý chỉ khi một tập tin nằm trong một thư mục nhất định, v.v.
Ví dụ, để gắn bó với ví dụ C, bạn có thể chèn các thử nghiệm sau vào chức năng trên:
(defun hide-copyright-note()
"Narrows the current buffer so that the first 15 lines are
hidden."
(interactive)
(when (copyright-message-p)
(save-excursion
(goto-char (point-min))
(forward-line 15)
(narrow-to-region (point) (point-max)))))
(defun copyright-message-p()
"Returns t when the current buffer starts with a Copyright
note inside a C-style comment"
(save-excursion
(goto-char (point-min))
(looking-at "\\s */\\*\\(:?\\s \\|\\*\\)*Copyright\\b")))
đối với mối quan tâm khác của bạn:
Khi tôi mở chúng trong các emacs, nó sẽ lãng phí rất nhiều không gian quý giá.
... hoặc bạn chỉ có thể cuộn xuống. Để đạt được điều này tự động, chúng ta có thể sử dụng chức năng sau thay vì hide-copyright-note
:
(defun scroll-on-copyright()
"Scrolls down to the 16th line when the current buffer starts
with a copyright note."
(interactive)
(when (copyright-message-p)
(goto-char (point-min))
(beginning-of-line 16)
(recenter 0)))
Tuy nhiên, lý do tôi đề nghị thay đổi đầu tiên là nếu bạn chỉ đơn thuần là di chuyển xuống tự động, sau đó bất cứ khi nào bạn nhảy đến đầu của bộ đệm (M-<
) bạn sẽ phải cuộn xuống theo cách thủ công. Vấn đề này không xảy ra với giải pháp thu hẹp.
Cảm ơn tôi sẽ thử. – sligocki
@sligocki: Hãy cho tôi biết nếu nó phù hợp với bạn. – Thomas
Xin lỗi vì sự chậm trễ @Thomas, chức năng hoạt động tuyệt vời! Bạn có bất kỳ đề xuất nào về cách thực hiện điều này chỉ áp dụng khi tệp bắt đầu với thông báo bản quyền không? Ví dụ, tôi rất vui khi có nó áp dụng cho bất cứ điều gì bắt đầu với '"/* \ n * Bản quyền "'. Đối với bình luận khác của bạn, có cách nào để có emacs tự động di chuyển về phía trước 15 dòng trên mở? Đó có thể là một giải pháp tốt hơn cho sự đơn giản. Cảm ơn một lần nữa. – sligocki