4つ単位で増加するuniversal-argumentで大丈夫か
- 平成22年10月18日(月) 09時30分03秒
- 区分
- Emacs
- 報告者:
- chiba
こんにちは、chibaです!
ネタ切れなので、どうでも良い感じのEmacsの日々を書きます。
Emacsのユーザーには、お馴染の数引数を入力するC-uですが、デフォルトだと(* 4)な感じで増加していきます。
================================================================は、C-u C-u C-u =の様に入力したりしていますが、自分は便利だなと思うのはこれ位です。
どちらかというと一個ずつ増加していった方が便利なのではないだろうか、ということで、オリジナルのコードを改造して作ってみました。
C-uと置き換えてみても良かったのですが、super+uということにしてみましたが、どんな感じなのかしばらく様子を見てみたいと思います。
(defun universal-argument-1+ ()
(interactive)
(setq prefix-arg (list 1))
(setq universal-argument-num-events (length (this-command-keys)))
(ensure-overriding-map-is-bound))
(defun universal-argument-1+-more (arg)
(interactive "P")
(cond ((consp arg)
(setq prefix-arg
(list (if (minusp (car arg))
(1- (car arg))
(1+ (car arg))))))
((eq arg '-)
(setq prefix-arg (list -1)))
('T (setq prefix-arg arg)
(restore-overriding-map)))
(setq universal-argument-num-events (length (this-command-keys))))
(define-key global-map [(super u)]
'universal-argument-1+)
(define-key universal-argument-map [(super u)]
'universal-argument-1+-more)
■