【问题标题】:Emacs global-set-key in find-file查找文件中的 Emacs 全局设置键
【发布时间】:2014-06-03 14:09:59
【问题描述】:

在我的init.el 文件中,我有这个:

(global-set-key "\M-n" (lambda () (interactive) (insert "~")))

这让我可以在我的 Mac 上使用 Alt-n 来生成 ~ 字符。它在缓冲区等中工作正常,但是当我尝试在find-file 中使用它时,我得到了

“历史结束,没有可用的默认值”。

C-h k 揭示了 M-n 实际上调用了:

(lambda nil (interactive) (insert "~"))

为什么这不适用于find-file

【问题讨论】:

    标签: emacs elisp key-bindings


    【解决方案1】:

    全局键绑定被本地(即主要模式)键绑定覆盖,这些键绑定被次要模式绑定覆盖,这些绑定被...... IOW,有很多级别键绑定。

    在这种情况下,您的全局绑定会被 minibuffer 键映射绑定覆盖。

    在本地映射的 minibuffer 完成键映射中,M-n 绑定到 next-history-element。如果您希望这样的地图中的M-n 绑定到其他东西,那么您需要绑定它。例如:

    (define-key minibuffer-local-completion-map "\M-n" 'your-command)
    

    根据您的 Emacs 版本,有几个 minibuffer 完成键映射。两个主要是minibuffer-local-completion-mapminibuffer-local-must-match-map

    【讨论】:

      猜你喜欢
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 2013-10-15
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 2012-12-02
      相关资源
      最近更新 更多