今天才知道 org-occur是做什么的
但发现M-g n不好按 于是乎
;;; org-occur
(add-hook 'org-occur-hook 'chong-org-occur 'append)
(defun org-occur-overlay-current ()
(let ((pos (point)) start end over)
(mapc
(lambda (ov)
(setq start (overlay-start ov)
end (overlay-end ov))
(when (and (<= start pos)(>= end pos))
(setq over ov)))
org-occur-highlights)
over))
(defvar chong-org-occur-keymap
(let ((map (make-keymap))
)
(define-key map "n" 'next-error)
(define-key map "p" 'previous-error)
map))
(defun chong-org-occur-add-map ()
(let ((ov (org-occur-overlay-current)))
(unless (overlay-get ov 'keymap)
(overlay-put
ov
'keymap chong-org-occur-keymap
))))
(defun chong-org-occur ()
(org-occur-next-match 1)
(chong-org-occur-add-map)
)
(defun chong-org-next-error ()
(chong-org-occur-add-map)
)
(add-hook 'next-error-hook 'chong-org-next-error)
(provide 'chong-org)