类似于Ajax的EMACS命令助手?

3
我是一名新手使用Emacs。我发现它非常强大和方便,如果能掌握其指令集的话。我相信任何人只要有耐心和学习和使用该软件的热情,就可以做到这一点。然而,对于初学者和老手用户来说,拥有一些命令助手插件会更好,这些插件可以执行以下操作:

当用户开始输入任何 CONTROL 或 META、COMMAND 或任何特殊键时,一个"ajax-like"或"smart search"窗口会在下面或迷你缓冲区中显示帮助文本,例如:如果我按住"CONTROL" ,命令助手窗口会显示:

C-p         Up one line
C-n         Down one line
C-f         Forward one character
C-b         Backward one character
C-a         Beginning of line       
C-e         End of line
C-x         ...

然后,如果我在按住“CONTROL”键的同时继续输入“x”,窗口将会更新并展示类似以下内容:
C-x C-a  add-mode-abbrev
C-x C-b  list-buffers
C-x C-c  save-buffers-kill-emacs
C-x C-d  list-directory
C-x C-e  eval-last-sexp
C-x C-f  find-file
C-x C-h  inverse-add-mode-abbrev
C-x TAB  indent-rigidly
C-x C-l  downcase-region
C-x C-n  set-goal-column
C-x C-o  delete-blank-lines

我尝试过通过谷歌搜索,但好像并不存在这样的功能。所以我猜这更应该是一项对于EMACS的需求,而不是一个问题。但如果有人能够编写一个插件/模块来完成此项任务,则会非常有用。

4个回答

2
我不认为这是必要的,而且也没有必要。它只会使屏幕变得混乱,虽然对于新手来说可能确实有用。

现在,您可以考虑打印一个备忘单

不要失去希望,我没有任何帮助就学会了它,关键是经常使用它。

此外,所有这一切背后都有相当好的逻辑,因此如果您在备忘单或其他任何地方阅读结构,那么它可能会帮助您更早地“猜测”正确的键组合。

编辑: 实际上,我自己问了一个类似的问题,至少需要相同的功能。我接受了一个答案,显然提到Icicles提供了这个功能。

另外,一个建议是,在输入前缀键(例如C-c)后,接着输入C-h可以显示可能的补全选项。
这让我想到以下内容:
我认为我们可以使用类似的代码: “如果最后一个按键是前缀键,则运行C-h*,切换回先前的缓冲区并重新按下最后一个前缀键”
*这是一种通用方法,即使对于我自己设计不良的小模式也可以使用。

也许对于基本命令来说不是这样,但是当使用像 rinari 这样定义了许多以相同前缀开头的命令的包时呢?我认为这将是使用菜单的良好替代方案。然而,它必须尽可能地不引人注目,这样当你记得快捷键时就不会妨碍你。 - Dmitry

0

我也不知道是否有现成的软件包可以做到这一点,但是我有几个小技巧。

要获取所有可用绑定的概述,请按C-h b。显示的缓冲区看起来相当原始,因为它包括所有输入特殊字符的方法(它们通常位于顶部),但是如果您记得至少一部分命令名称,就可以使用C-s进行搜索。

如果您知道前缀(例如C-x)但不记得接下来应该输入什么,您可以输入C-x C-h(而不是C-h)进行跟踪。这将带来一个类似的缓冲区,其中只包含以相同前缀开头的绑定。我认为这是比较晦涩的功能之一。

说到“如果我按住Ctrl”,当您刚按下Ctrl而没有其他操作时显示提示目前在Lisp级别无法实现。那需要进行一些底层更改。


0

Emacs中的键绑定太多了,实际上并不实用。

我同意其他回答,并想补充一点,我发现内置教程对于掌握基础非常有用。你可以使用C-h t来进入教程。

你可能最终会更改几个默认绑定,但学习它们将帮助你在新模式下找到正确的操作方式(假设它们以“emacsy”的方式工作)。


0

我回来了,因为我找到了一个完美的解决方案,不能没有它:emacs-helmwhich-key


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接