OSXでTerminalとMacVimのみCommandとCtrlを入れ替える

投稿者: | 2016年8月28日

うちでは主にMac mini2012を使っていますが、Macでは以前から左Commandを押すのに親指を内側に入れるように押していました。どうもこれが良くないらしく、最近左手親指の付け根に変な感覚が…

windowsなどではソフト的にキーを入れ替える等して小指でAの左にあるCtrlを押しているのですが、Macの場合Aの左をCtrlとCommandで取り合うことになります。
個人的にはTerminalとMacVimを使うことを優先するとAの左はCtrlにしておきたい。

何か良い方法がないものかと調べてみたところ、以下のサイトに良さそうな情報が。
Macのターミナルのときだけ Control と Command のキーを入れ替える

基本はCapsをCtrlではなくCommandに設定しておいて、TerminalのときだけCtrlにするということができるらしく、それにはKeyRemap4MacBookでxmlを書いて設定を追加してやれば良いとのこと。
KeyRemap4MacBookは以前キーリピートが遅いと思っていた時に使っていましたが最近は入れていませんでした。
今はKarabinerという名前になってるようで、KarabinerのサイトからDLできます。

先ほどのサイトにある方法だとキーの入れ替えはTerminalでしか有効にならないはずなので、MacVimでも同様の設定を有効にしたいと思いつつ、Karabinerに最初から有る設定一覧を見ていたところ、上のサイト記事で行っているTerminalの時だけCommandとCtrlを入れ替える設定は取り込まれていました。一覧の中にあるのでそれを有効にすれば良くなっています。

またTerminal上でCommandキーが左になくなることになるので、あわせてIMEの切り替えキーをShift+Spaceに変更。(kinput2+Cannaを使っていたのでいまだにこれは使う)

さすがに初期一覧にMacVim用の設定はなさそう。上のサイトに書いてあるように設定をprivate.xmlに書き足せば良いだろうということでここから開いて追加。
kara_misc

private.xmlの書き方はprivate.xml Reference Manualを見つつ以下のようにしました。

<?xml version="1.0"?>
<root>
  <appdef>
    <appname>MACVIM</appname>
    <equal>org.vim.MacVim</equal>
  </appdef>
  <list>
     <item>
       <name>Command_L to Control_L (MacVim ONLY)</name>
       <only>MACVIM</only>
       <identifier>remap.app_macvim_commandL2controlL</identifier>
       <autogen>--KeyToKey-- KeyCode::COMMAND_L, KeyCode::CONTROL_L</autogen>
     </item>
  </list>
</root>

保存したら設定画面でReload xmlを押すと一番上に追加した項目が出てくるのでチェックして有効化。
kara_setting

これで久しぶりにMacでTerminal以外でもキーボードが普通に使えるようになりました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です