Emacs - smartrep.elでrepeatを活性化せよ

くどいプレフィクスキー

Emacsにはプレフィクスキーという概念がありますね。

そのおかげで1ストロークではおさまりきれいないほどの
数のコマンドをキーに割り当てることができます。

それはいいことなんですが、プレフィクスキー
付きのコマンドを何度も実行すると、いい加減
プレフィクスキーがくどいと感じてきませんか?


たとえば、
C-x 3でウィンドウを左右分割してください。

その後C-x {を何回か実行して
ウィンドウを縮めてください。

C-x { C-x { C-x { …と何度もC-x {を
実行するハメになってしまいますね。

repeatはいいけど

これを回避する方法としてrepeatを使う方法があります。

C-x zを使えばC-x { C-x z z …のようにできますが、
やはりC-xがくどいのではないでしょうか?

(global-set-key (kbd "C-,") 'repeat)

とC-,にrepeatを割り当てれば
C-x { C-, C-, …のように操作できます。

それでも同じ操作を繰り返すのにC-,に操作を切り替える
のはしっくりこないと感じるのではないでしょうか?

C-fならば、それを繰り返せばどんどん
カーソルを前に持っていけますね。

それと同じように C-x { { { …と
操作できた方が使いやすいはずです。

逆にウィンドウを広げる C-x } も使えば、
C-x { { } { …のようにキーボードだけ
で微調整ができるようになります。

ウィンドウの大きさを調節するのに
わざわざマウスを使う必要はありません。

smartrep登場

それを実現するのが2年以上前に
登場したsmartrep.elです。

M-x package-refresh-contents
M-x package-install smartrep

にてインストールしてください。

そして以下のコードを評価すると、
C-xの後に{と}でウィンドウの横幅を
調節できるようになります。

(require 'smartrep)
(smartrep-define-key global-map "C-x"
  '(("{" . shrink-window-horizontally)
    ("}" . enlarge-window-horizontally)))

続きはメルマガで

他にもsmartrep的なコマンドを紹介したり、
smartrepを使ってウィンドウ制御をする設定を
明日のメルマガでお話します。お楽しみに!


http://www.mag2.com/m/0001373131.html