【发布时间】:2015-04-29 19:54:08
【问题描述】:
即任何可以从M-x 运行的东西。包括任何 C 内置函数、用户定义等。
例如list-all-commands
'(... about-emacs ... zap-to-char ...)
考虑到M-x 的自动完成等行为,它必须是可访问的。
从How to print all the defined variables in emacs?,我们可以访问所有符号:
(pp-eval-expression
(quote (loop for x being the symbols
if (boundp x)
collect (symbol-name x))))
但其中大部分不是交互式功能。
编辑:
叹息其实有一点。通过将此列表发送到语音识别引擎,在对连字符和symbol-name 进行标记之后,我应该能够说出除了最奇怪的书面命令之外的所有命令(Dragon NaturallySpeaking 很好)。如果没有这个列表,识别准确度会降低,我将不得不手动硬编码我想要的任何命令的键盘快捷键,或者处理错误识别时不断的挫败感。
这就是我需要的。但是,我可能还想编写自己的自动完成行为;或比较不同模式提供的名称的相似性;或发现在词法上与我使用的常用命令相似的新命令(例如,使用align-regex 通常可能建议使用align-entire);或分析不同地区命名运动中的任何不一致(例如beginning-of-line与up-list);或者我已经看过ido,想看看是否有一个标准函数来构建它用来高效查询的数据结构;或者我想对它进行基准测试;或者我只是好奇。这有很多用途。
Emacs 的全部意义在于行为向程序员公开,而不仅仅是通过 UI。
您现在可以收回投票结束吗?我认为这不是“不清楚我在问什么”,如果是建议澄清点。
【问题讨论】:
-
这有什么意义?你已经有
M-x。 -
我有
M-x。我没有list-all-commands。查看我的编辑。 -
您是否包含默认未加载(或自动加载)的命令?在通过某种方式加载相关库之前,Emacs 不会知道大量的命令。
-
@phils "runnable" 命令,很好。
标签: emacs