Emacs:设置doc-view-continuous不适用于修改后的键绑定

时间:2011-12-16 14:32:54

标签: emacs key-bindings docview

我在 emacs 中工作, ergoemacs 次要模式已开启。此次要模式相应地将 C-n C-p 更改为 M-k M-i

doc-view 模式下,我可以使用 Mi Mk 在一个页面内上下移动,但是当结束(开始)时页面到达滚动停止。

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

  • 使用 M-k 连续滚动 M-i 如果 ergoemacs 次要模式已开启
  • ,则无效 如果 ergoemacs 次要模式关闭,
  • 使用 C-n C-p 连续滚动
  • 下一页 C-x,] 和上一页 C-x,[始终有效
  • 使用鼠标滚轮连续滚动始终有效

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

1 个答案:

答案 0 :(得分:0)

显然,doc视图会明确地将其命令绑定到C-nC-p。我的猜测是ergoemacs重新映射绑定到这些键的常用命令,而不是键M-kM-i。 Ergoemacs可能不知道有问题的doc-view命令。

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

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