没有数字的C-u通用参数的值

时间:2013-05-26 01:28:58

标签: emacs

在将来的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

1 个答案:

答案 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