在将来的emacs版本中,universal-argument
乘数的值是否保证为4?
entry in the manual没有直接描述,但使用C-h f
表示
没有数字或减号的C-u提供4作为参数。
重复没有数字或减号的C-u每次将参数乘以4。
(emacs版本24.3.1)
对于它的价值,我正在使用call-interactively
并希望正确设置current-prefix-arg
。
答案 0 :(得分:3)
其中一位维护者可能想要进入芯片,但我无法想象这种情况会发生变化。
除了它可能是最佳 1 值之外,还有太多的代码依赖于原始值(4)
或数值4
。
现在这不是保证,但是如果他们要改变这个,你的代码将远远不是唯一破坏的东西,所以我确信这样的改变会被电报提前给人们尽可能多的时间来适应。
(值 是硬编码的,顺便说一句。没有可以使用的变量。)
1 考虑到奇数可能不太理想,偶数两边都是2(它本身几乎没用,平方只加倍到4)和6(平方到36,这是一个太大的增长)。
此外,我认为如果有任何感觉可以通过改变这个价值获得优势,那么讨论和改变就会发生在很久以前。
修改强>
这里值得注意的是,如果你想测试 Cu 而不用一个数字,你可以简单地测试(consp arg)
,前提是你已使用(interactive "P")
获取原始值,因为当用户未输入特定数字时,原始值为列表。
如果您关心 C-u 的使用次数,您还需要检查(prefix-numeric-value arg)
。
如果您不确定它是如何工作的,请使用指定前缀参数的各种不同方法调用此命令,您将很快得到这个想法:
(defun foo (arg)
(interactive "P")
(message "%s" arg))
另见 C-h i g (elisp) Prefix Command Arguments
RET