标签: ido

Emacs:改变迷你缓冲区中的Ido完成键映射

我使用Ido模式并使用Ergoemacs模式,它将find-file命令绑定到C-o.当您浏览文件时,可以通过按下C-x C-f迷你缓冲区暂时禁用Ido .我想把它改成C-o,所以我可以按两次来运行find-file没有Ido.我怎样才能做到这一点?

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

(let ((map (make-sparse-keymap)))
  (define-key map "\C-x\C-f" 'ido-fallback-command))
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何使用它来绑定ido-fallback-commandC-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.

然而,当我C-o再次按下迷你缓冲区时,我收到此错误:Debugger entered--Lisp error: (error "Command attempted to use minibuffer while in minibuffer") C-x C-f在迷你缓冲区中仍然作为后备命令.

我们发现Ergoemacs包与它有关.当我关闭Ergoemacs模式,都C-x C-fC-o工作作为后备的命令.我尝试minor-mode-map-alist使用以下代码交换Ido和Ergoemacs键映射: …

emacs elisp ido

5
推荐指数
1
解决办法
797
查看次数

在直接缓冲区中获取ido

我经常使用dired-mode,最近我开始使用ido:

(ido-mode 1); enable ido-mode
(setq ido-enable-flex-matching t); flexibly match names via fuzzy matching
(setq ido-everywhere t); use ido-mode everywhere, in buffers and for finding files
(setq ido-use-filename-at-point 'guess); for find-file-at-point
(setq ido-use-url-at-point t); look for URLs at point
(setq ffap-require-prefix t); get find-file-at-point with C-u C-x C-f 
Run Code Online (Sandbox Code Playgroud)

当我C在一个直接缓冲区中复制一个文件(带)时,我仍然需要使用"标准方式"来给出复制文件的新位置.这意味着,我必须使用标准的TAB完成,但没有ido完成.这同样适用于R移动文件等.因此,我想知道是否有可能得到ido同样作用于CR在dired缓冲区?

emacs dired ido

5
推荐指数
1
解决办法
1460
查看次数

使用ido进行组织重新归档,而不使用ido作为完成引擎

我正在尝试使用org-mode设置捕获/重新归档工作流,但是我无法让ido作为完成引擎工作。

我启用了ido:

(require 'ido)
(setq ido-everywhere t)
(ido-mode t)
Run Code Online (Sandbox Code Playgroud)

然后在我的配置中,稍后我尝试org-refile使用以下配置来设置ido完成

(setq org-agenda-files
      '("~/org/captured.org"
        "~/org/work.org"
        "~/org/learning.org"
        "~/org/life.org"))
(setq org-refile-targets '((nil :maxlevel . 6)
                           (org-agenda-files :maxlevel . 6)))
(setq org-refile-use-outline-path 'file)
(setq org-completion-use-ido t)
Run Code Online (Sandbox Code Playgroud)

我希望通过这些设置,当我尝试调用时,org-refile我会在迷你缓冲区中看到一个ido完成接口,其中列出了我可以重新归档的文件和标题,结构类似于目录树。

但是,我看到的只是空白,就像非ido完成界面一样。我可以使用此界面完成操作。例如,我可以键入wo[Tab]em[Tab]get work/email,但是我更喜欢ido。

我的配置方式有问题吗?

emacs elisp org-mode ido

5
推荐指数
1
解决办法
620
查看次数

在Emacs中以特定模式设置快捷键(例如ido)

我有两个问题,我相信有些相关:

1)在IDO中,我想将ido-restrict-to-match更改为除C-SPCor之外的其他内容C-@.不幸的是,我不知道如何告诉emacs我想要一个不同的快捷方式(比方说C-0).

2)我想保护我,C-;但每当flyspell模式运行它超车C-;.我的定义在.emacs中:

(global-set-key (kbd "C-;") 'mark-paragraph)
Run Code Online (Sandbox Code Playgroud)

但显然flyspell会覆盖这个......(尽管如此,如果我查看帮助M-h k C-;它会说mark-paragraph)

有人可以告诉我如何在这些条件下绑定/解除绑定键吗?它必须在不修改ido.el和flyspell.el并重新构建的情况下工作,对吗?

非常感谢!

emacs keyboard-shortcuts ido flyspell

4
推荐指数
1
解决办法
1063
查看次数

Emacs ido:如何首先显示特定的文件结尾?

ido-mode在Emacs 24下使用以下设置:

(ido-mode 1)
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
(setq ido-use-filename-at-point 'guess)
(setq ido-use-url-at-point t)
(setq ffap-require-prefix t)
Run Code Online (Sandbox Code Playgroud)

假设您在当前目录中有多个具有相同名称但结尾不同的文件.如果您通过更改缓冲区C-x b,则会收到一些建议.这些建议的顺序能否以某种方式受到影响?

例如,假设您在当前目录中有多个Sweave(.Rnw)文件.它们总是比从它们创建的相应(.tex)文件更重要.因此,在大多数情况下,您希望将缓冲区更改为.Rnw文件,而不是.tex文件.因此,如果首先建议.Rnw文件(在存在具有相同基本名称的.Rnw和.tex文件的所有目录中)将是很好的.

emacs ido

4
推荐指数
1
解决办法
460
查看次数

告诉 ido 忽略所有星形缓冲区,除了一些

通常我想ido忽略所有非用户缓冲区,即所有以*. 我使用以下设置实现了这一点:

(setq ido-ignore-buffers '("\\` " "^\*"))
Run Code Online (Sandbox Code Playgroud)

然而,这在使用 shell 或解释器时会产生问题,例如ielm,交互缓冲区被命名为*ielm*。显然,手动添加要忽略的所有缓冲区并不是一个真正的选择,因为加载了许多不同的 emacs 包后,列表可能会变得很长。我知道C-a哪个从内部禁用了忽略模式ido,但是,我不想C-a每次切换到ielm缓冲区时都点击。

我的问题是:

有一些变量,它允许指定IDO应该缓冲区不能忽略(虽然它们匹配的正常忽略列表)?或者有没有其他方法可以解决这个问题?

emacs buffer ido

4
推荐指数
1
解决办法
1032
查看次数

没有选择emacs ido建议的内容?

在我当前的工作目录中~/WD有一个abc.txt文件.现在我想abc.txt在子目录下创建另一个~/WD/NEW/.当我输入C-x C-f和目录时~/WD/NEW/abc.txt,ido正在将字符串更改为~/WD/abc.txt,这不是我想要打开的.当我尝试修改字符串时,ido会自动将我的输入"纠正"为错误的字符串.

有什么方法可以解决这个问题吗?

emacs ido

3
推荐指数
1
解决办法
241
查看次数

标签 统计

emacs ×7

ido ×7

elisp ×2

buffer ×1

dired ×1

flyspell ×1

keyboard-shortcuts ×1

org-mode ×1