Emacs: Есть ли лучшее поведение PgDn / PgUp с cua-mode?

Я бы хотел, чтобы клавиши 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 ?

5
задан Jasper 16 September 2011 в 06:08
поделиться