C-uを押した回数によって実行するコマンドを変えるコマンドを定義する為の拡張 prefix-arg-commands.el を公開しました。

動機

個人的に出来るだけMetaキーを使用しないキーバインドにしていてあれこれやりくりしてきましたが、打ち易いキーバインドが少くなくなってきたため、普段余り使わないC-u(universal-argument)コマンドを事前に実行した回数によってコマンドを呼び分けコマンドを作ることで、キーバインドを増やすために作ってみました。

機能

(prefix-arg-commands-defun
  prefix-arg-commands-forward-move-commands
  '(forward-char forward-sexp))

のような形の式を評価すると、呼ばれた時にC-uが一度も入力されていない場合forward-charが、一度入力するとforward-sexpが呼ばれるprefix-arg-commands-forward-move-commandsという関数が定義されます。
リスト部分に要素を追加すれば2回、3回とC-uを押した場合に呼ばれる関数が定義できます。
現在10回分まで対応しています。

導入

1. git clone git@github.com:tm8st/emacs-prefix-arg-commands.git
または、
2. https://github.com/tm8st/emacs-prefix-arg-commands/raw/master/prefix-arg-commands.el
または、
3. (auto-install-from-url "https://github.com/tm8st/emacs-prefix-arg-commands/raw/master/prefix-arg-commands.el") を評価する。

などして、ソースを入手後、
.emacs等に、

(require 'prefix-arg-commands)
;; exapmle commands
(global-set-key (kbd "C-f") 'prefix-arg-commands-forward-move-commands)
(global-set-key (kbd "C-b") 'prefix-arg-commands-backward-move-commands)
(global-set-key (kbd "C-a") 'prefix-arg-commands-back-to-indentation-move-commands)
(global-set-key (kbd "C-e") 'prefix-arg-commands-end-of-line-move-commands)
(global-set-key (kbd "C-;") 'prefix-arg-commands-set-frame-alpha)

のような感じのコードを追加してください。
prefix-arg-commands-defunが定義され、
C-f,C-bなどに単純な移動用サンプルコマンドが、
C-;にC-uを押した回数によって異なる値をフレームの半透明度に設定するコマンドがバインドされます。

設定については、お好みに合せ調整してください。
面白い設定などありましたらお知らせ下さい。

今後

不具合、ご要望などありましたら、
email、twitterなどでお知らせください。