По умолчанию работа клавиш PageUp PageDown в Emacs отличается от других редакторов. Вот в такой ситуации, когда курсор находится в нескольких строчках от верхнего края документа:
в большинстве редакторов PageUp поставит курсор на первую строчку, а Emacs - ничего делать не будет, если вся верхняя часть документа попадает на экран. Не то что бы поведение других редакторов правильное, а в Emacs - нет, просто подобное поведение ожидается уже на уровне рефлексов и когда курсор не двигается - это раздражает.
Но к счастью в Emacs можно поменять поведение почти всего и PageUp/PageDown не исключение, напишем две маленькие функции:
(defun cfg:page-up () (interactive) (condition-case nil (scroll-down) (beginning-of-buffer (goto-char (point-min))))) (defun cfg:page-down () (interactive) (condition-case nil (scroll-up) (end-of-buffer (goto-char (point-max)))))
Они - пододвигают курсор в начало (или в конец для page down) документа, если встроенные функции отказались это делать. Теперь назначаем их на нужные нам клавиши:
(global-set-key (kbd "<prior>") 'cfg:page-up) (global-set-key (kbd "<next>") 'cfg:page-down)
Все готово, можно пользоваться.
Комментариев нет:
Отправить комментарий