2010-02-11 24 views
19

Tôi muốn có loại indiacator ở phía bên trái của dòng bất cứ nơi nào tôi có trong mã nguồnEmacs: chỉ số TODO ở phía bên trái

#TODO: một số bình luận

// TODO: một số nhận xét

Chỉ báo có thể là dấu chỉ và tôi đã bật số dòng được hiển thị ở emacs.

Trả lời

20

Lệnh này sẽ làm điều gì đó bạn muốn.

(defun annotate-todo() 
    "put fringe marker on TODO: lines in the curent buffer" 
    (interactive) 
    (save-excursion 
    (goto-char (point-min)) 
    (while (re-search-forward "TODO:" nil t) 
     (let ((overlay (make-overlay (- (point) 5) (point)))) 
     (overlay-put overlay 'before-string (propertize "A" 
                 'display '(left-fringe right-triangle))))))) 

Bạn có thể customize the bitmap như mong muốn.

Để có được điều này để áp dụng cho tất cả các file, bạn có thể thêm nó vào 'find-file-hooks

(add-hook 'find-file-hooks 'annotate-todo) 

Hoặc, nếu bạn muốn nó chỉ dành riêng cho chế độ nhất định, bạn có thể thêm nó vào những móc chế độ.

Xem Fringes, The 'display' Property, Overlays và quan trọng nhất là thuộc tính before-string.

Lưu ý: Mã được cập nhật 27/02/2010 để sử dụng lớp phủ thay vì trực tiếp thêm thuộc tính văn bản vào văn bản hiện tại.

+0

Công việc này tuyệt vời. tiếc là tôi đã kích hoạt số dòng được hiển thị. Vì vậy, số dòng ghi đè lên dấu TODO:. Bất kỳ cách nào để làm cho cả hai xuất hiện –

+0

@Trey Jackson. Nó hoạt động tốt ngay bây giờ. Tôi đã thêm bên cạnh chỉ số số dòng. Cảm ơn rất nhiều –

+0

Thật tuyệt! nhưng ..... :) ... Điều gì sẽ hữu ích hơn là hiển thị các thanh màu đỏ trên rìa, thu nhỏ đến độ dài của tài liệu. Nói cách khác, nếu TODO xuất hiện ở điểm 75% của tài liệu, thì chỉ báo cũng sẽ xuất hiện ở mức 75% trên thanh rìa, bất kể trạng thái cuộn và liệu TODO có hiển thị trong cửa sổ tại thời điểm đó hay không. Một số công cụ khác làm điều này. Với loại chỉ báo đó, bạn có thể thấy sự hiện diện của các mục TODO được chỉ ra ở rìa, bất kể chúng có hiển thị trên màn hình hay không. – Cheeso

6

Tôi thích cách tiếp cận được mô tả trong this post trên emacs-fu, thêm TODO/FIXME/... vào cài đặt khóa phông của các chế độ bạn cần. Ngược lại với cách tiếp cận của Trey, điều này sẽ làm nổi bật các từ khi bạn nhập, trong khi cách tiếp cận của anh ta chỉ nên làm nổi bật chúng khi bạn mở một tệp (hoặc tôi nhận được điều này sai).

Dù sao tùy thuộc vào bạn. Một tìm kiếm google tốt mang đến cho bạn có thể thậm chí nhiều ý tưởng: http://www.google.com/search?q=emacs+highlight+todo

Cập nhật: Câu hỏi của bạn đã được trả lời: Emacs, highlight all occurences of a word

Các vấn đề liên quan