2011-09-14 34 views
18

Làm cách nào để tôi có thể thay đổi tìm kiếm gia tăng (C-s) tới C-f trong Emacs?Cách liên kết 'tìm kiếm' và 'tìm kiếm-lặp lại' với C-f trong Emacs?

Tôi cố gắng làm (global-set-key (kbd "C-f") 'isearch-forward) nhưng thứ hai C-f không lặp lại tìm kiếm và tôi cần phải sử dụng C-s.

Sau đó, tôi đã thử (global-set-key (kbd "C-f") 'isearch-repeat-forward) nhưng đầu tiên C-f không bắt đầu tìm kiếm.

Và tôi thậm chí đã thử (global-set-key (kbd "C-f C-f") 'isearch-repeat-forward), nhưng điều này gây ra lỗi.

Tôi muốn sử dụng C-f cho các lệnh tìm kiếm và lặp lại tìm kiếm, làm cách nào tôi có thể thực hiện việc này?

Cảm ơn.

Trả lời

16

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

+3

Đã hoạt động! '(toàn cầu-set-key (kbd" C-f ") 'isearch-forward) (xác định-key isearch-mode-map" \ C-f "' isearch-repeat-forward)' Cảm ơn bạn rất nhiều. –

5

isearch-repeat-forward được định nghĩa trong isearch-mode-map

Để giải quyết vấn đề của bạn làm như sau:

(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: trên thực tế, bạn không cần phải thêm một cái móc. Câu trả lời được chấp nhận bởi Ross Patterson là chính xác.

+0

Làm việc với giải pháp này. Cảm ơn. –

+0

Tại sao làm điều này trong móc chế độ và không chỉ thay đổi bản đồ chế độ một lần, với một 'phím định nghĩa' duy nhất như @ ross-patterson đã làm trong câu trả lời của mình? –

+0

@Davor Cubranic yes, câu trả lời được chấp nhận là chính xác –

Các vấn đề liên quan