如何在Emacs中重复插入一个表达式(长度> = 2)?

时间:2014-08-20 19:41:25

标签: emacs

e.g。我想插入" foo" 10倍。

我只能想到三种方法:使用C-x z重复上一个命令,从寄存器重复插入,或者宏。

对于前两个,我尝试了前缀参数C-u 10,但没有工作。对于宏来说,它的击键次数有点太多了。

最直观的方式,C-u C-y,也不起作用。

这样做最方便的方法是什么?

2 个答案:

答案 0 :(得分:3)

  

对于宏,它的键击计数有点太多了。

真的?如果你最后一次杀戮10次,那就是:

F3 赛扬 1 0 F4

F3 Cy M-1 M-0 F4

无论哪种方式,在指定前缀arg和执行猛拉之前,它只有两个键。

答案 1 :(得分:1)

我也喜欢这样做,所以写了这个函数:

(defun my-yank ()
  "Like yank, but with prefix number yank that many times."
  (interactive "*")
  (when (and delete-selection-mode (region-active-p))
    (delete-region (region-beginning) (region-end)))
  (if (and current-prefix-arg (integerp current-prefix-arg))
      (dotimes (x current-prefix-arg)
        (yank))
    (yank)))