2

需要在 init.el 文件中进行哪些设置,如果单击 Mx 和命令的首字母,则允许完成其余命令。

事实上,minibuffer 也需要类似于 ido-mode 的东西

4

2 回答 2

3

“Mx minifuffer”的 ido 模式称为 smex(smex 使用 ido)。

在 Emacs 的主包 repos 上可用。主页在这里

于 2013-11-08T07:38:52.717 回答
1

我认为您在谈论增量完成,即让 Emacs 自动完成您在 minibuffer 中键入的内容,而无需显式请求完成(例如,使用TAB)。

增量完成在Icicles以及IdoIswitchB中可用。并icomplete-mode以与 Ido 和 IswitchB 类似的方式向您显示完成候选。

Icicles增量完成有两个方面:

  1. 当缓冲区*Completions*显示和更新时,向您显示与您的输入相匹配的候选人 -- 多久会发生以及触发更新的原因

  2. 您的 minibuffer 输入是否以及多少扩展(完成)以反映匹配完成集

Wrt*Completions*显示(#1):

您可以随时使用C-#在关卡(正常、急切、关闭)之间循环。

  • 正常意味着*Completions*在您要求之前不会显示,但此后会在您键入/编辑输入时自动更新。

  • 急切意味着*Completions*只要您键入与至少两个候选人匹配的内容,就会显示该内容。

(在您输入任何内容之前,还有一个 *Completions*从一开始就显示的选项 - 作为一种菜单很有用。)您还可以指定在输入或删除字符后等待多长时间再更新*Completions*

Wrt 输入扩展(#2):

Icicles在将您的输入扩展到(通常)所有补全中最长的公共匹配方面是独一无二的,即使补全使用适当匹配(即正则表达式或子字符串 -- S-TAB),而不仅仅是前缀匹配 ( TAB)。

此扩展有 4 个级别/行为,加上关闭(无扩展):

  • Off - 这就像 Ido 和 IswitchB:显示完成,但您的输入未完成
  • 根据要求 - 仅在请求时扩展您的输入(TABS-TAB
  • 应要求或唯一候选人——应要求或只有一场比赛时
  • Always for TAB, on request for S-TAB--TAB尽可能扩展;S-TAB就像以前一样
  • 总是——尽可能扩展输入

C-"在您选择的两个输入扩展行为(用户选项)之间切换,并C-M-"在所有行为之间循环。

于 2013-11-08T16:43:54.553 回答