2017-05-06 4 views
1

nextlineのような組み込みコマンドの場合は、C-u n M-x next-lineと入力してn回繰り返すことができます。ただし、次のユーザー定義コマンドのために:私はC-u 4 smsn-set-priority-public-and-drop-cursorをしようとした場合このユーザー定義関数を繰り返し実行できないのはなぜですか?

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

、それは一度だけ発生します。どうして?

答えて

1

C-u nは、繰り返し回数を指定するのではなく、数値プレフィックス引数を指定します。その引数がコマンドの動作をどのように変更するかは、そのコマンドの定義によって異なります。

あなたのコマンドはすべての接頭引数を無視します。そのため、C-u 4は何の効果もありません。

はここで接頭辞与えられた反復するコマンド例です:

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

(独自にC-uは道で、4のプレフィックス値を与え、他のいくつかのきちんとしたトリックを持っている - C-uのドキュメント文字列を参照してください。 )

+0

「Ch f dotimes」も参照してください。 – Drew

関連する問題