0

我在Emacs中工作,并打开了ergoemacs次要模式。该次要模式将CnCp相应地更改为MkMi。

文档视图模式下,我可以使用MiMk在一个页面内上下移动,但是当到达页面的结尾(开始)时,滚动停止。

我已将doc-view-continuous变量设置为t。结果如下:

  • 如果打开 ergoemacs次要模式,使用MkMi连续滚动将不起作用
  • 如果关闭了ergoemacs次要模式,则使用CnCp连续滚动有效
  • 下一页Cx,]和上一页Cx,[始终有效
  • 使用鼠标滚轮连续滚动始终有效

PS:
在写这篇文章时,我发现了以下内容:

  • doc-view模式下Cp绑定到doc-view-previous-line-or-previous-page函数,该函数根据doc-view-continuous以不同的方式表现
  • doc-view模式 + ergoemacs次要模式下Mi绑定到image-previous-line功能

这种差异是问题的原因。我会尝试使用doc-view-mode-hook

编辑:
这是适用于ergoemacs模式的启动代码:

;; 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键。

4

1 回答 1

0

显然 doc view 将其命令显式绑定到C-nand C-p。我的猜测是 ergoemacs 将绑定到这些键的常用命令重新映射到键,M-k而是重新映射M-i。Ergoemacs 可能不知道有问题的 doc-view 命令。

考虑为 ergoemacs 提交增强请求,以便它提供一个用户选项,其值为以这种方式重新映射的命令列表。这样,您就可以自定义选项,而不是执行上面的操作。

有关定义此类选项的代码示例,您可以将 Xah Lee(ergoemacs 的作者)引用到 file icicles-opt.el, option icicle-top-level-key-bindings

于 2012-01-03T18:29:09.183 回答