2017-05-06 60 views
1

对于内置在像nextline命令,我可以通过键入C-u n M-x next-line重复n倍。然而,对于以下用户定义的命令:为什么我不能重复这个用户定义的函数?

(defun smsn-set-priority-public-and-drop-cursor() 
    (interactive) 
    (progn 
    (move-end-of-line 1) 
    (insert (concat "\n    @priority 0.75\n")) 
    (kill-line) 
    )) 

,如果我尝试C-u 4 smsn-set-priority-public-and-drop-cursor,它只会发生一次。为什么?

回答

1

C-u n没有指定重复次数,但一个数字前缀的说法。这个参数如何改变命令的行为取决于该命令的定义。

你的命令忽略任何前缀的说法完全,这就是为什么C-×4没有任何作用。

下面是该地重复给出一个前缀的示例命令:

(defun test (arg) 
    (interactive "p") 
    (while (plusp arg) 
    (insert "zonk") 
    (setq arg (1- arg)))) 

C-u自身给出了4的前缀值,顺便说一下,并拥有其他一些巧妙的技巧 - 见C-u文档字符串。 )

+0

参见'章˚Fdotimes'。 – Drew

相关问题