Câu trả lời:
Tôi không thấy hành vi mà bạn mô tả, tất cả. Đối với tôi, khi tôi chọn một lần xuất hiện trong bộ đệm, *Occur*
nó sẽ truy cập sự xuất hiện trong bộ đệm nguồn, đặt cú đánh đó vào giữa cửa sổ bộ đệm nguồn (theo chiều dọc).
Nhưng nếu bạn thấy những gì bạn mô tả, thì chỉ cần đặt một số mã truy cập cửa sổ vào occur-mode-find-occurrence-hook
.
Một cái gì đó như thế này. Bạn có thể sử dụng bất kỳ điều kiện so sánh bạn muốn. Ở đây, tôi đã sử dụng "trong vòng 10 dòng trên cùng hoặc dưới cùng", nhưng bạn có thể sử dụng tỷ lệ phần trăm, v.v.
(defun foo ()
(let ((line (line-number-at-pos)))
(cond ((<= line (+ (line-number-at-pos (window-start)) 10))
(recenter 10))
((>= line (- (line-number-at-pos (window-end)) 10))
(recenter -10)))))
(add-hook 'occur-mode-find-occurrence-hook 'foo)
emacs -Q
trên MS Windows 7. Bất kỳ lần truy cập nào tôi nhấp (hoặc sử dụng RET
) trong bộ đệm xảy ra đều được hiển thị ở giữa theo chiều dọc trong bộ đệm nguồn.
emacs -Q
(trên Linux) đưa ra hành vi mà bạn mô tả. Một cái gì đó phải được chôn ở đâu đó là thiết lập.