cách tiếp cận tốt nhất có lẽ sẽ để thêm móc sau:
(add-hook 'isearch-mode-end-hook 'recenter-top-bottom)
này sẽ thực hiện lệnh recenter-top-bottom
khi hoàn thành mọi tìm kiếm gia tăng thành công.
Edit: Tôi đã điều tra một chút, và các chức năng được thực hiện trên các tìm kiếm lặp đi lặp lại cho cùng một chuỗi (ví dụ, với đầu vào liên tiếp của C-s
hoặc C-r
trong một cuộc tìm kiếm đang hoạt động) dường như isearch-repeat-forward
và/hoặc isearch-repeat-backward
. Do đó, nếu bạn muốn để quay lại trên mỗi lặp lại là tốt, bạn cần phải tư vấn cho các chức năng cho biết ngoài việc xác định các móc phía trên, như vậy:
(defadvice
isearch-repeat-forward
(after isearch-repeat-forward-recenter activate)
(recenter-top-bottom))
(defadvice
isearch-repeat-backward
(after isearch-repeat-backward-recenter activate)
(recenter-top-bottom))
(ad-activate 'isearch-repeat-forward)
(ad-activate 'isearch-repeat-backward)
Cá nhân, tôi tìm thấy những hành vi dẫn đến cực kỳ khó chịu và mất phương hướng , nhưng de gustibus non est disputandum. Có lẽ đặt recenter-top-bottom
để sử dụng trong isearch-mode-end-hook
ban đầu và sử dụng recenter
một mình trong lời khuyên cho các chức năng repeat
sẽ ít đáng ghét hơn.
Tự mình tư vấn isearch-forward
tương đương với việc thêm móc tôi đã đề xuất ở trên và dường như không ảnh hưởng đến tìm kiếm lặp lại. Thêm móc đơn giản hơn và tôi nghĩ thành ngữ hơn, vì vậy nó có lẽ nên được ưu tiên hơn thông báo cho hàm.
Nguồn
2012-06-15 15:08:57