Я бы хотел, чтобы клавиши PgUp и PgDn просто перемещали содержимое показанного файла вверх или вниз, но курсор ( точка в Emacs Lingo) должен оставаться на месте (на экране). К сожалению, поведение Emacs по умолчанию другое. Поведение по умолчанию трудно описать, но если вы нажмете PgDn , а затем PgUp , вы не окажетесь там, где были раньше (!).
Это не новость проблема, и существует хорошее решение под названием sfp-page-up и sfp-page-down в EmacsWiki .
(defun sfp-page-up ()
(interactive)
(setq this-command 'previous-line)
(previous-line
(- (window-text-height)
next-screen-context-lines)))
Однако есть одна проблема в сочетании с ] cua -режим, который обеспечивает (среди прочего) выбор смещения (нажатие Shift и клавиши перемещения курсора, например ← или PgDn , начинает выделять выбранная область):
cua-mode
не t распознают переопределенные клавиши PgUp / PgDn , т. е. они не запускают выбор. Чтобы решить эту проблему, сначала нажмите кнопку ↑ или ↓ , а затем перейдите к PgUp / PgDn .
Как я могу сделать cua-mode
хорошо работает с sfp-page-up / down
?