miglior approccio sarebbe probabilmente per aggiungere la seguente gancio:
(add-hook 'isearch-mode-end-hook 'recenter-top-bottom)
Questo eseguirà il comando recenter-top-bottom
al completamento di ogni ricerca incrementale di successo.
Edit: ho studiato un po ', e le funzioni che vengono eseguite sulla ricerca utilizzate per la stessa stringa (cioè, con successivo ingresso C-s
o C-r
durante una ricerca attiva) sembrano essere isearch-repeat-forward
e/o isearch-repeat-backward
. Quindi, se si vuole centrare nuovamente su ogni ripetizione pure, è necessario consigliare dette funzioni oltre a definire il gancio sopra, in questo modo:
(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)
Personalmente, trovo il comportamento risultante di essere estremamente fastidioso e disorientante , ma de gustibus non est disputandum. Forse riservare recenter-top-bottom
per l'utilizzo nello isearch-mode-end-hook
iniziale e utilizzare le funzioni repeat
utilizzando il comando meno antipatico.
La consulenza di isearch-forward
è di per sé equivalente all'aggiunta del gancio originariamente suggerito sopra e apparentemente non ha alcun effetto sulle ricerche ripetute. Aggiungere il gancio è più semplice e penso che sia più idiomatico, quindi probabilmente dovrebbe essere preferibile rispetto a consigliare la funzione.
fonte
2012-06-15 15:08:57