понедельник, 8 октября 2012 г.

PageUp/PageDown в меню auto-complete

После длительного сидения на 1.2, обновился до версии 1.4 auto-complete.el (через ELPA). Красота, да еще и со всплывающими подсказками. Первое что захотелось сделать перевесить вызов как в популярных IDE:
 (define-key ac-mode-map (kbd "C-SPC") 'auto-complete)
Уже на списке автодополнений захотелось нажать привычную для IDE PageDown для прокрутки по списку. Ан нет, emacs выполняет прокрутку на странице. Сделаем возможность PageDown/PageUp на меню автодополнений:
 (defun ac-page-next ()
   "Select next completion candidate per `ac-menu-height' range.
 Pages down through completion menu."
   (interactive)
   (let ((counter 0))
     (dotimes (counter (1- ac-menu-height))
       (ac-next))))

 (defun ac-page-previous ()
   "Select previous completion candidate per `ac-menu-height' range.
 Pages up through completion menu."
   (interactive)
   (let ((counter 0))
     (dotimes (counter (1- ac-menu-height))
       (ac-previous))))
(define-key ac-complete-mode-map [next] 'ac-page-next)
(define-key ac-complete-mode-map [prior] 'ac-page-previous)
Поиск в меню давно хотелось перевесить, но все ни как руки не доходили. isearch-forward у меня висит на C-f, соответственно меняем:
(define-key ac-complete-mode-map (kbd "C-f") 'ac-isearch)

Комментариев нет:

Отправить комментарий