0

ergoemacsマイナーモードをオンにしてEmacsで作業しています。このマイナーモードは、それに応じてCnCpMkMiに変更します。

ドキュメントビューモードでは、 MiMkを使用して1ページ内を上下に移動できますが、ページの終わり(最初)に達するとスクロールが停止します。

doc-view-continuous変数をtに設定しました。結果は次のとおりです。

  • ergoemacsマイナーモードがオンになっている場合、 MkMiを使用した連続スクロールは機能しません
  • ergoemacsマイナーモードがオフになっている場合、 CnおよびCpによる連続スクロールが機能します
  • 次のページ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

どうやらドキュメントビューはそのコマンドを明示的にC-nとにバインドします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 に答える