キーバインドの競合

自分はSublime Text 2(以下ST2)をメインのエディターにしている。

ST2にはMacだと command+ control+ or でキャレットのある行を前後の行と入れ替える機能がある。大変便利なので重宝していたのだけど、このキーバインドで煩わしい問題が起きたので記念ポエムを書く。

使用マシンがMacBook Air 11-inchで画面に余裕がない人生を強いられているから、 Spectacleというカレントウィンドウをリサイズできるユーティリティーソフトを入れてみた。しかし前述の command+ control+ or のキーバインドがSpectacleと競合し、ST2の方の機能が使えないということが起こった。

SpectacleもキーバインドはカスタマイズできるのでST2とかぶらないように変更しST2の行入れ替えも動作してウハウハと思ったのは束の間、今度はPhotoshopと競合した。なのでまたSpectacleの方を変更したら、今度は Sipというカラーピッカーと競合した。思わず舌打ちした。

ST2とPhotshopはアプリケーションが互いに干渉することはないが、SpectacleやSipといったものは他のアプリケーションを使っている間でも操作ができるようにキーバインドの影響するレイヤーが上位になっている。Alfredもこの類だ。

こういった上位レイヤーのアプリケーションにたくさんのキーバインドが設定されていると、下位レイヤーのアプリケーションにもろに影響してそれらの便利機能が失われてしまう。

インストールしたてではキーバインドを知っていることはなく、またキーバインドというのは使ってるアプリケーションと強く紐付いて認識しているため、カスタマイズ中でも「あ、この組み合わせはあっちのアプリで使ってるな」などとすぐに思い至ることは少ない。Macのシステムのキーバインドとも競合していたりでキー設定のループからなかなか抜け出せない。

ST2はそのあたり賢くて、半分くらいは command+ kの後に連続でキーを入力する方式で豊富なキーバインドを実現している。この連続入力式のキーバインドができるアプリケーションは少ないと思う。

前ポストの話にも繋がるが、こういう設定をちまちまやるのは本当に時間の無駄に感じてしまう。なのでこういった設定ファイルはすべからくエクスポートできるようになっていると嬉しい。