未来版本的emacs中multiplier的值是否universal-argument
保证为4?
手册中的条目没有直接描述它,但使用C-h f
说
没有数字或减号的 Cu 提供 4 作为参数。
没有数字或减号的重复 Cu 每次将参数乘以 4。
(emacs 版本 24.3.1)
对于它的价值,我正在使用call-interactively
并希望current-prefix-arg
正确设置。
其中一位维护者可能想参与进来,但我无法想象这种情况会发生变化。
除了它可能是最好的1值之外,还有太多依赖于原始值(4)
或数值的代码4
。
现在这不是保证,但是如果他们要更改此代码,那么您的代码将远非唯一损坏的东西,所以我相信这样的更改会提前很长时间电报给人们尽可能多的时间来适应.
(顺便说一句,该值是硬编码的。没有可以使用的变量。)
1考虑到奇数可能不太可取,而两边的偶数是 2(这本身几乎没有用,当平方时仅加倍为 4)和 6(平方为 36,这太大了增加)。
另外,我想如果说改变这个值有什么好处的话,讨论和改变应该早就发生了。
编辑:
这里可能值得注意的是,如果你想测试C-u 不带数字的使用,你可以简单地测试(consp arg)
,前提是你已经(interactive "P")
获得了原始值,因为原始值是一个列表,当没有输入特定数字时用户。
如果您关心使用了多少次C-u,您还需要检查(prefix-numeric-value arg)
.
如果您不确定它是如何工作的,请使用指定前缀参数的各种不同方式调用此命令,您会很快明白这一点:
(defun foo (arg)
(interactive "P")
(message "%s" arg))
也可以看看C-hig (elisp) Prefix Command Arguments
RET