gpt4 book ai didi

Emacs:在 minibuffer 中更改 Ido 完成键映射

转载 作者:行者123 更新时间:2023-12-04 18:48:38 27 4
gpt4 key购买 nike

我使用 Ido 模式,也使用 Ergoemacs 模式,它绑定(bind)了 find-file命令 C-o。当您浏览文件时,您可以通过在 minibuffer 中按 C-x C-f 来暂时禁用 Ido。我想把它改成C-o,所以我可以按两次运行find-file没有伊多。我怎样才能做到这一点?

ido.el我看到 Ido 使用函数 ido-init-completion-maps ,它通过运行代码来定义键

(let ((map (make-sparse-keymap)))
(define-key map "\C-x\C-f" 'ido-fallback-command))

但是我不确定如何使用它来绑定(bind) ido-fallback-command到 minibuffer 里面的 C-o。

Emacs 版本:24.0.94.1

编辑 (20.03.12) : 与 Francesco 讨论后我评估过: (define-key ido-file-completion-map "\C-o" 'ido-fallback-command) .

现在,当我按 C-h k C-o 时,我看到这一行: C-o Fallback to non-ido version of current command .

但是,当我在 minibuffer 中再次按 C-o 时,出现此错误: Debugger entered--Lisp error: (error "Command attempted to use minibuffer while in minibuffer") minibuffer 中的 C-x C-f 仍然作为后备命令工作。

我们发现 Ergoemacs 包与它有关。当我关闭 Ergoemacs 模式时,C-x C-f 和 C-o 都作为后备命令工作。我尝试在 minor-mode-map-alist 中交换 Ido 和 Ergoemacs 键盘映射。使用以下代码:
(let ((elem (first
(remove-if-not
'(lambda (item) (equal 'ido-mode (car item)))
minor-mode-map-alist))))
(setq minor-mode-map-alist (remove elem minor-mode-map-alist))
(add-to-list 'minor-mode-map-alist elem))

(define-key ido-file-completion-map "\C-o" 'ido-fallback-command)'

没用。

最佳答案

你可以使用这样的东西:

(define-key ido-file-completion-map "\C-o" 'ido-fallback-command)

关于Emacs:在 minibuffer 中更改 Ido 完成键映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9686879/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com