今日、Facebook経由でSublime Text2というプログラマ向けテキストエディタを知り、ヨサゲなので使い始めてみました。とりあえず何がスゴいかはこちらの日本語入門動画がオススメです。
で、試していて最初に困ったのが、Ctrl-AがEmacsキーバインドの行頭移動ではなく全選択になっていた点。さっそくカスタマイズしようとしたらそんな設定はどこにもない。あぁ、そうかMacのキーバインドをカスタマイズするKeyRemap4MacBookでWindowsライクにしてたからな。Emacs、Terminal、VMWareなどでは適用除外してくれるのですっかり忘れてた。しかし、標準ではKeyRemap4MacBookがSublime Text2などという新しいエディタを知っているわけもなく、除外設定もありません。
ということで、こちらの記事を参考にさせていただき、自作設定を追加しました。まず、元となる標準設定の、Use PC Style Copy/Paste、Use PC Style Undo、Use PC Style Select All、Use PC Style Save(それぞれTerminalやEmacsを除く版の方)の4つの設定を「/Library/org.pqrs/KeyRemap4MacBook/app/KeyRemap4MacBook.app/Contents/Resources/include/checkbox/for_pc_users.xml」から引っこ抜いてきます(<item>~</item>がひとまとまりです)。次に、KeyRemap4MacBookの設定パネルから「Misc & Uninstall」タブを開き「Open private.xml」をクリック。Finderで表示されたウインドウをエディタで開き、しかるべき位置にペーストします。元のfor_pc_users.xmlを直接編集してしまうと、おそらくバージョンアップ時に上書きされてしまうので、必ずカスタム設定はprivate.xmlの方に書いておくようにしましょう。
で赤字の位置を修正します。
- Sublimeのアプリ名を認識させる為にappdefタグを追加(ちなみにcom.sublimetext.2はアプリバンドルの中のinfo.plistを見ました)。
- identifierタグの中身がカブると怒られるので、private.や_and_sublimeを追加
- notタグにappdefで定義したappnameを追加
以上。保存し、KeyRmap4MacBookコントロールパネルで「Change Key」タブに戻り、「ReloadXML」ボタンを押せば項目一覧の一番上に新設定が出現するはずです。
<?xml version="1.0"?>
<root>
<appdef>
<appname>SUBLIME2</appname>
<equal>com.sublimetext.2</equal>
</appdef>
<item>
<name>Use PC Style Copy/Paste</name>
<appendix>(Control+C to Command_L+C)</appendix>
<appendix>(Control+V to Command_L+V)</appendix>
<appendix>(Control+X to Command_L+X)</appendix>
<appendix>(Except in Terminal, VM, RDC, Emacs, X11, Eclipse, SublimeText2)</appendix>
<identifier>private.remap.copy_paste_winstyle_no_term_and_sublime</identifier>
<not>EMACS, TERMINAL, VIRTUALMACHINE, REMOTEDESKTOPCONNECTION, X11, ECLIPSE, SUBLIME2</not>
<autogen>–KeyToKey– KeyCode::C, VK_CONTROL, KeyCode::C, ModifierFlag::COMMAND_L</autogen>
<autogen>–KeyToKey– KeyCode::V, VK_CONTROL, KeyCode::V, ModifierFlag::COMMAND_L</autogen>
<autogen>–KeyToKey– KeyCode::X, VK_CONTROL, KeyCode::X, ModifierFlag::COMMAND_L</autogen>
</item>
<item>
<name>Use PC Style Undo</name>
<appendix>(Control+Z to Command_L+Z)</appendix>
<appendix>(Except in Terminal, VM, RDC, Emacs, X11, Eclipse, SublimeText2)</appendix>
<identifier>private.remap.undo_winstyle_no_term_and_sublime</identifier>
<not>EMACS, TERMINAL, VIRTUALMACHINE, REMOTEDESKTOPCONNECTION, X11, ECLIPSE, SUBLIME2</not>
<autogen>–KeyToKey– KeyCode::Z, VK_CONTROL, KeyCode::Z, ModifierFlag::COMMAND_L</autogen>
</item>
<item>
<name>Use PC Style Select All</name>
<appendix>(Control+A to Command_L+A)</appendix>
<appendix>(Except in Terminal, VM, RDC, Emacs, X11, Eclipse, SublimeText2)</appendix>
<identifier>private.remap.select_all_winstyle_no_term_and_sublime</identifier>
<not>EMACS, TERMINAL, VIRTUALMACHINE, REMOTEDESKTOPCONNECTION, X11, ECLIPSE, SUBLIME2</not>
<autogen>–KeyToKey– KeyCode::A, VK_CONTROL, KeyCode::A, ModifierFlag::COMMAND_L</autogen>
</item>
<item>
<name>Use PC Style Save</name>
<appendix>(Control+S to Command_L+S)</appendix>
<appendix>(Except in Terminal, VM, RDC, Emacs, X11, Eclipse, SublimeText2)</appendix>
<identifier>private.remap.save_winstyle_no_term_and_sublime</identifier>
<not>EMACS, TERMINAL, VIRTUALMACHINE, REMOTEDESKTOPCONNECTION, X11, ECLIPSE, SUBLIME2</not>
<autogen>–KeyToKey– KeyCode::S, VK_CONTROL, KeyCode::S, ModifierFlag::COMMAND_L</autogen>
</item>
</root>