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を使ってウィンドウ制御をする設定を
明日のメルマガでお話します。お楽しみに!