Emacs: установка doc-view-непрерывного не работает с измененными привязками клавиш - PullRequest
0 голосов
/ 16 декабря 2011

Я работаю в Emacs с включенным ergoemacs второстепенным режимом.Этот второстепенный режим изменяется соответственно Cn и Cp на Mk и Mi .

В просмотр документовВ режиме я могу перемещаться вверх и вниз по одной странице с помощью Mi и Mk , но по достижении конца (начала) страницы прокрутка прекращается.

Я установил doc-view-непрерывная переменная на t .Вот результат:

  • непрерывная прокрутка с Mk и Mi не работает, если ergoemacs вспомогательный режим включен
  • непрерывная прокрутка с Cn и Cp работает, если ergoemacs вспомогательный режим отключен
  • следующая страница Cx,] и предыдущая страница Cx, [ всегда работает
  • непрерывная прокрутка колесиком мыши всегда работает

PS:
При написании этого поста яобнаружил следующее:

  • в просмотр документов режим Cp привязан к doc-view-previous-line-or-предыдущая страница функция, которая ведет себя по-разному в зависимости от doc-view-непрерывный
  • в doc-view mode + ergoemacs второстепенный режим Mi связан с image-previous-line function

Эта разница является причиной проблемы.Я попытаюсь использовать doc-view-mode-hook .

Отредактировано:
Вот код запуска, который работает для ergoemacs mode:

;; adjust docview mode
(setq doc-view-continuous t)
(defun adjust-doc-view ()
  (ergoemacs-local-set-key (kbd "M-i")
    'doc-view-previous-line-or-previous-page)
  (ergoemacs-local-set-key (kbd "M-k")
    'doc-view-next-line-or-next-page)
)
(add-hook 'doc-view-mode-hook 'adjust-doc-view)

Я не понимаю, почему функции doc-view привязаны к стандартным клавишам, но не привязаны к ergoemacs клавишам.

1 Ответ

0 голосов
/ 03 января 2012

Видимо, doc view явно связывает свои команды с C-n и C-p. Я полагаю, что ergoemacs переназначает обычные команды, которые привязаны к этим клавишам, вместо клавиш M-k и M-i. Ergoemacs, вероятно, не знает о рассматриваемых командах doc-view.

Подумайте о том, чтобы подать запрос на расширение для ergoemacs, чтобы он предоставил пользовательскую опцию, значением которой является список команд, которые будут переназначены таким образом. Таким образом, вместо того, чтобы делать то, что вы делаете выше, вы можете просто настроить параметр.

В качестве примера кода, который определяет такую ​​опцию, вы можете сослаться на Xah Lee (автора ergoemacs) в файл icicles-opt.el, опция icicle-top-level-key-bindings.

...