najlepszym rozwiązaniem byłoby prawdopodobnie dodać następujące haczyk:
(add-hook 'isearch-mode-end-hook 'recenter-top-bottom)
ten będzie wykonywał polecenia z recenter-top-bottom
po zakończeniu każdego udanego szukania przyrostowego.
Edit: Mam badane trochę, a funkcje, które są wykonywane na wielokrotnych poszukiwań do tego samego łańcucha (to znaczy z kolejnym wejściem C-s
lub C-r
podczas aktywnego poszukiwania) wydają się być isearch-repeat-forward
i/lub isearch-repeat-backward
. Tak więc, jeśli chcesz, aby pojawiło się na każdym powtórzeniu, a także, trzeba doradzić wspomnianych funkcji w uzupełnieniu do zdefiniowania powyżej haka, tak:
(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)
Osobiście uważam, że uzyskany zachowanie się być bardzo irytujące i dezorientujące , ale de gustibus non est disputandum. Być może zarezerwowanie recenter-top-bottom
do użytku w początkowym numerze isearch-mode-end-hook
i użycie samej recenter
w radzie funkcji repeat
byłoby mniej nieprzyjemne.
Samo doradzanie isearch-forward
jest równoznaczne z dodaniem haka, który pierwotnie zasugerowałem powyżej i najwyraźniej nie ma wpływu na powtarzające się wyszukiwania. Dodawanie haka jest prostsze i myślę, że bardziej idiomatyczne, więc prawdopodobnie powinno być preferowane w porównaniu z doradzaniem funkcji.