2011-09-14 4 views
18

Come posso rimappare la ricerca incrementale (C-s) a C-f in Emacs?Come associare 'search' e 'search-repeat' a C-f in Emacs?

che cerco di fare (global-set-key (kbd "C-f") 'isearch-forward) ma il secondo C-f non ripetere la ricerca e ho bisogno di usare C-s.

Ho quindi provato (global-set-key (kbd "C-f") 'isearch-repeat-forward) ma il primo C-f non ha avviato la ricerca.

E ho anche provato (global-set-key (kbd "C-f C-f") 'isearch-repeat-forward), ma questo causa un errore.

Desidero utilizzare C-f per i comandi di ricerca e di ripetizione della ricerca, come posso fare?

Grazie.

risposta

16

(define-key isearch-mode-map "\C-f" 'isearch-repeat-forward)

+3

Ha funzionato! '(global-set-key (kbd" C-f ") 'search-forward) (define-key-mode-map-map" \ C-f "' isearch-repeat-forward)' Grazie mille. –

5

isearch-repeat-forward è definita nel isearch-mode-map

Per risolvere il problema eseguire le seguenti operazioni:

(global-set-key (kbd "C-f") 'isearch-forward) 

(add-hook 'isearch-mode-hook 
(lambda() 
(define-key isearch-mode-map (kbd "C-f") 'isearch-repeat-forward) 
) 
) 

EDIT: in realtà, non è necessario aggiungere un gancio. La risposta accettata da Ross Patterson è corretta.

+0

Ha lavorato con questa soluzione. Grazie. –

+0

Perché farlo in modalità hook e non basta cambiare la mappa della modalità una volta, con un solo 'define-key' come ha fatto @ ross-patterson nella sua risposta? –

+0

@Davor Cubranic si, la risposta accettata è corretta –

Problemi correlati